HashMap 是线程安全的吗?请说明 ConcurrentHashMap 在 JDK 1.7 和 1.8 中的主要实现区别及取舍。
考察说明
考察对 Java 集合线程安全机制及演进的理解,要求对比不同 JDK 版本的实现细节
回答思路
- 明确 HashMap 非线程安全及可能问题(数据覆盖、环形链表等)
- 对比 JDK 1.7 分段锁与 JDK 1.8 CAS+synchronized 的锁粒度
- 说明 1.8 改进点如红黑树、扩容优化、计数方式
- 能针对场景说明适用性与取舍
考察对 Java 集合线程安全机制及演进的理解,要求对比不同 JDK 版本的实现细节