核心问题
- 面试官实际询问的是为什么
ConcurrentHashMap不能插入null值。
HashMap与ConcurrentHashMap的区别
-
HashMap:
- 允许
null作为键(key)和值(value)。 - 单线程环境下使用,非线程安全。
- 允许
-
ConcurrentHashMap:
- 不允许
null作为键或值。 - 多线程环境下使用,线程安全。
- 不允许
ConcurrentHashMap不允许null的原因
-
源码层面:
ConcurrentHashMap的putVal方法在添加元素时,如果检测到键或值为null,则会抛出NullPointerException。 -
设计层面:
ConcurrentHashMap设计用于并发环境,需要避免二义性问题。- 允许
null可能导致程序含义不明确或模糊。
二义性问题解释
- 含义:代码或表达式存在多种理解或解释,导致程

最低0.47元/天 解锁文章
1180

被折叠的 条评论
为什么被折叠?



