- 博客(3)
- 收藏
- 关注
原创 HashMap / ConcurrentHashMap 深入拆解:JDK7 vs JDK8,从“扩容坑”到“高并发实现”
摘要:本文深入解析HashMap与ConcurrentHashMap的核心原理。HashMap通过数组+链表/红黑树实现O(1)查找,关键设计包括2的幂容量、扰动函数和扩容优化。JDK8改进包括红黑树、尾插法和按位拆分扩容。ConcurrentHashMap在JDK7采用分段锁,JDK8升级为CAS+桶锁+协作扩容机制,显著提升并发性能。文章还对比了两者差异,指出HashMap线程不安全问题及使用注意事项,并总结了ConcurrentHashMap如何通过细粒度锁和协作机制实现高效并发访问。
2025-12-31 13:22:23
1014
原创 面试题:volatile 实现原理?它和 synchronized的区别?
volatile关键字通过内存屏障和缓存一致性协议实现内存可见性。写入volatile变量时插入StoreStore和StoreLoad屏障,读取时插入LoadLoad和LoadStore屏障,防止指令重排序。x86架构下,volatile写通过lock前缀指令触发MESI协议,使其他CPU缓存失效并强制写回主存。与synchronized相比,volatile不保证复合操作原子性但性能更好,适合状态标志位等场景;synchronized则适用于需要互斥保护的复合操作。
2025-12-28 13:00:58
260
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅