<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[haomingplus的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/haomingplus</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; haomingplus]]></copyright><item><title><![CDATA[HashMap / ConcurrentHashMap 深入拆解：JDK7 vs JDK8，从“扩容坑”到“高并发实现”]]></title><link>https://blog.youkuaiyun.com/haomingplus/article/details/156455276</link><guid>https://blog.youkuaiyun.com/haomingplus/article/details/156455276</guid><author>haomingplus</author><pubDate>Wed, 31 Dec 2025 13:22:23 +0800</pubDate><description><![CDATA[摘要：本文深入解析HashMap与ConcurrentHashMap的核心原理。HashMap通过数组+链表/红黑树实现O(1)查找，关键设计包括2的幂容量、扰动函数和扩容优化。JDK8改进包括红黑树、尾插法和按位拆分扩容。ConcurrentHashMap在JDK7采用分段锁，JDK8升级为CAS+桶锁+协作扩容机制，显著提升并发性能。文章还对比了两者差异，指出HashMap线程不安全问题及使用注意事项，并总结了ConcurrentHashMap如何通过细粒度锁和协作机制实现高效并发访问。]]></description><category></category></item><item><title><![CDATA[面试题：Synchronized 锁升级全过程？]]></title><link>https://blog.youkuaiyun.com/haomingplus/article/details/156360135</link><guid>https://blog.youkuaiyun.com/haomingplus/article/details/156360135</guid><author>haomingplus</author><pubDate>Sun, 28 Dec 2025 13:20:46 +0800</pubDate><description><![CDATA[禁用原因：现代应用多线程竞争普遍，偏向锁撤销的 STW 成本反而成为负担。]]></description><category></category></item><item><title><![CDATA[面试题：volatile 实现原理？它和 synchronized的区别？]]></title><link>https://blog.youkuaiyun.com/haomingplus/article/details/156359845</link><guid>https://blog.youkuaiyun.com/haomingplus/article/details/156359845</guid><author>haomingplus</author><pubDate>Sun, 28 Dec 2025 13:00:58 +0800</pubDate><description><![CDATA[volatile关键字通过内存屏障和缓存一致性协议实现内存可见性。写入volatile变量时插入StoreStore和StoreLoad屏障，读取时插入LoadLoad和LoadStore屏障，防止指令重排序。x86架构下，volatile写通过lock前缀指令触发MESI协议，使其他CPU缓存失效并强制写回主存。与synchronized相比，volatile不保证复合操作原子性但性能更好，适合状态标志位等场景；synchronized则适用于需要互斥保护的复合操作。]]></description><category></category></item></channel></rss>