- 博客(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关注的人