java基础
文章平均质量分 67
slsg978
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
用过哪些 Map 类,都有什么区别,HashMap 是线程安全的吗,并发
特性HashMap线程安全否是锁机制无锁synchronized + CAS (桶级别锁)存储结构数组 + 链表/红黑树数组 + 链表/红黑树哈希计算扰动函数 (h ^ (h >>> 16)) & (n-1)计算方式类似,但过程更复杂以保证并发安全扩容单线程,rehash多线程协同扩容Null 键/值允许不允许(因为并发环境下 null 的二义性无法处理)性能定位单线程环境下性能最优高并发环境下性能最优,单线程下稍慢于 HashMap。原创 2025-09-17 09:38:45 · 1341 阅读 · 0 评论 -
ArrayList 和linkedList有什么区别
特性ArrayListLinkedList底层数据结构动态数组 (Object[])双向链表 (Node<E>)随机访问性能极快 (O(1))通过索引直接定位元素。慢 (O(n))需要从头或尾遍历到指定位置。头部插入/删除性能慢 (O(n))需要移动后续所有元素。极快 (O(1))只需修改指针引用。尾部插入/删除性能快 (O(1))amortized(摊还)时间复杂度。扩容时除外。极快 (O(1))有尾指针,直接操作。中间插入/删除性能慢 (O(n))原创 2025-09-17 09:34:51 · 1277 阅读 · 0 评论 -
讲讲类的实例化顺序
(至此,类加载阶段完成,静态成员只会初始化一次)父类静态成员初始化(静态字段、静态代码块)子类静态成员初始化(静态字段、静态代码块)父类普通成员初始化(普通字段、普通代码块)子类普通成员初始化(普通字段、普通代码块)(至此,父类对象初始化完成)(至此,子类对象初始化完成)按代码中的书写顺序执行。按代码中的书写顺序执行。按代码中的书写顺序执行。执行父类构造器中的代码。按代码中的书写顺序执行。执行子类构造器中的代码。原创 2025-09-17 09:33:53 · 125 阅读 · 0 评论 -
String,Stringbuffer,StringBuilder 的区别
特性String可变性不可变可变(Mutable)可变(Mutable)线程安全性安全(天生安全,因为不可变)安全(内部方法使用 synchronized 同步)不安全(没有同步措施)性能低(修改会产生大量新对象,开销大)中(由于同步,有一定开销)高(无同步开销,效率最高)使用场景操作少量数据、定义常量、不需要改变字符串内容的情景多线程环境下,需要在字符缓冲区进行大量操作的情景单线程环境下,需要在字符缓冲区进行大量操作的情景诞生版本JDK 1.0。转载 2025-09-17 09:31:45 · 16 阅读 · 0 评论 -
String 类能被继承吗,为什么
原因类别具体原因解释语法层面final 关键字修饰直接禁止了继承的可能性。设计层面保证不可变性这是核心,由此衍生出安全性、线程安全、哈希码缓存等优势。实现字符串常量池节省内存,提升性能,前提是池中的字符串值必须绝对可靠。保障哈希集合可靠性确保作为Key的字符串哈希值永不改变,维护集合的正确性。转载 2025-09-17 09:28:15 · 80 阅读 · 0 评论
分享