自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

原创 Java 值传递和引用传递

Java的基本数据类型的包装类和String 他们是不可变对象,都是使用值传递。如果为引用传递,a name应为p,所以传递对象也是值传递。

2024-01-12 16:34:38 417 1

原创 常用的Map

当需要按照插入顺序或访问顺序迭代Map时,例如缓存、记录用户浏览历史等。当多线程需要同时读写Map时,例如线程安全的缓存、数据库连接池等。当需要按照键的顺序访问元素时,例如统计数字的频率、分析日志等。当你需要一个快速的查找Map时,例如缓存、数据库连接池等。当键的类型是枚举类型时,例如存储一周的天数、月份等。提供了高效的查找性能,通常的时间复杂度为O(1)。键的类型是枚举类型,键值对的查找速度非常快。维护了插入顺序或访问顺序的迭代顺序。不保证元素的顺序,特别是迭代顺序。键的类型有限制,只能是枚举类型。

2023-12-26 15:36:03 409 1

原创 ArrayList和LinkedList的区别

ArrayList因为使用了数组结构可以快速查找,但LinkedList每次查找都需要从头开始挨个往下找,所以随机访问ArrayList优于LinkedList。对于新增和删除方法,ArrayList需要移动受影响的元素,LinkedList只需要修改前后元素的引用。LinkedList是双向链表结构,不需要连续的内存,通过节点指针指向上一个和下一个节点。如果需要频繁的随机访问和读取操作,可以选择ArrayList。ArrayList是一个可变长的数组,是一段连续内存。

2023-12-25 10:10:33 320

原创 StringBulider、StringBuffer和“ + ”

在循环拼接时,+拼接虽然会优化为StringBuilder,但每次循环都会new一个StringBuilder,而StringBuilder只会new一个,所以效率会大大增加。所以在字符串拼接涉及多线程的情况下,建议使用StringBuffer,单线程则建议使用StringBuilder。JDK5开始,使用“+”拼接字符串,经过编译器编译后自动优化为使用StringBuilder。由结果可见差异很小,所以在几个字符串拼接的情况下,+和StringBuilder没有区别。

2023-12-22 17:34:17 352

原创 ClassNotFoundException 和 NoClassDefFoundError

JVM找不到class文件(classpath设置问题):检查classpath配置。NoClassDefFoundError的发生是在成功编译后,要运行时找不到类。类可能会依赖其他类,其他类可能无法被找到或不能被加载:检查类依赖的其他类。Error主要出现在运行时,Exception在运行时和编译时都会出现。ClassNotFoundException发生在编译时,找不到类。类加载器配置问题:检查类加载器配置、使用其他类加载器。class文件不存在:确定类文件是否存在。查找开发时存在但运行时不存在的类。

2023-12-22 17:33:55 528

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除