ConcurrentHashMap 线程安全原理November 20, 2022·223 字·2 分钟Java基础 Java 并发 集合框架ConcurrentHashMap 到底怎么保证线程安全的 # 上篇写了 HashMap,有同学私信问我 ConcurrentHashMap 和 HashMap 有什么区别。其实吧,区别大了去了,JDK8 的 ConcurrentHashMap 基本是重写的,跟 JDK7 完全两个思路。 花了差不多一周把源码理清楚,这篇来聊聊它到底怎么在并发场景下保证线程安全。 JDK7 的 Segment 分段锁 # 先说 JDK7 的方案,面试还是会问。
HashMap 源码笔记September 15, 2022·347 字·2 分钟Java基础 Java 集合框架 源码HashMap 源码我读了三遍才看懂 # 大二下学期面试实习的时候,面试官问我 HashMap 的底层原理,我支支吾吾说了个"数组加链表"就说不下去了。回来之后就下定决心要把源码读一遍。结果读了三遍才算真正搞明白,这玩意比我想象的要精妙得多。 先说说 HashMap 的内部结构 # 你打开 HashMap 的源码,会看到一个叫 Node<K,V>[] table 的数组。这就是 HashMap 的骨架。