- 博客(7)
- 收藏
- 关注
原创 用过哪些 Map 类,都有什么区别,HashMap 是线程安全的吗,并发
特性HashMap线程安全否是锁机制无锁synchronized + CAS (桶级别锁)存储结构数组 + 链表/红黑树数组 + 链表/红黑树哈希计算扰动函数 (h ^ (h >>> 16)) & (n-1)计算方式类似,但过程更复杂以保证并发安全扩容单线程,rehash多线程协同扩容Null 键/值允许不允许(因为并发环境下 null 的二义性无法处理)性能定位单线程环境下性能最优高并发环境下性能最优,单线程下稍慢于 HashMap。
2025-09-17 09:38:45
1339
原创 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
1276
原创 讲讲类的实例化顺序
(至此,类加载阶段完成,静态成员只会初始化一次)父类静态成员初始化(静态字段、静态代码块)子类静态成员初始化(静态字段、静态代码块)父类普通成员初始化(普通字段、普通代码块)子类普通成员初始化(普通字段、普通代码块)(至此,父类对象初始化完成)(至此,子类对象初始化完成)按代码中的书写顺序执行。按代码中的书写顺序执行。按代码中的书写顺序执行。执行父类构造器中的代码。按代码中的书写顺序执行。执行子类构造器中的代码。
2025-09-17 09:33:53
121
转载 String,Stringbuffer,StringBuilder 的区别
特性String可变性不可变可变(Mutable)可变(Mutable)线程安全性安全(天生安全,因为不可变)安全(内部方法使用 synchronized 同步)不安全(没有同步措施)性能低(修改会产生大量新对象,开销大)中(由于同步,有一定开销)高(无同步开销,效率最高)使用场景操作少量数据、定义常量、不需要改变字符串内容的情景多线程环境下,需要在字符缓冲区进行大量操作的情景单线程环境下,需要在字符缓冲区进行大量操作的情景诞生版本JDK 1.0。
2025-09-17 09:31:45
16
转载 String 类能被继承吗,为什么
原因类别具体原因解释语法层面final 关键字修饰直接禁止了继承的可能性。设计层面保证不可变性这是核心,由此衍生出安全性、线程安全、哈希码缓存等优势。实现字符串常量池节省内存,提升性能,前提是池中的字符串值必须绝对可靠。保障哈希集合可靠性确保作为Key的字符串哈希值永不改变,维护集合的正确性。
2025-09-17 09:28:15
77
原创 Java 时间换算
import java.util.Scanner; public class Main { Scanner in = new Scanner (System.in); private int[] hour = new int[2]; private int[] minute = new int [2]; Main() { min
2017-12-22 14:54:03
1072
原创 Java 温度转换
import java.util.Scanner; public class Main { public static int swap(int a) { double k; k = (a-32)*5/9.0; return (int)(k); } public static void main(String[] args) { Scanner
2017-12-22 14:52:18
342
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅