提问

为什么ConcurrentHashMap的key不能为null?
看了好多帖子,都在解释value为null的情况。
但如果key为null而value不为null呢,比如put(null, "aaa")?
全部评论
1.8的concurrentHashMap的锁是通过cas+synchrnozed实现的,也就是在数据落槽的时候,如果key为null,则以cas的方式进行落槽,如果不为Null,则使用synchrnozed对节点进行加锁。如果key允许为null,这会有异议性吧
2 回复 分享
发布于 11-18 14:30 北京
我记得是在源码中对key和value都做了null的判断
1 回复 分享
发布于 11-18 13:50 江西
都是为了避免多线程环境下的二义性问题吧
1 回复 分享
发布于 11-18 13:53 安徽

相关推荐

11-19 14:01
Java
点赞 评论 收藏
分享
评论
1
6
分享
牛客网
牛客企业服务