扫码关注微信公众号

回复“面试手册”,获取本站PDF版

回复“简历”,获取高质量简历模板

回复“加群”,加入程序员交流群

回复“电子书”,获取程序员类电子书

当前位置: Java > Java并发高频面试题 > 56.ConCurrentHashMap的key,value是否可以为null?为什么?HashMap中的key、value是否可以为null?

ConCurrentHashMap中的keyvaluenull会出现空指针异常,而HashMap中的keyvalue值是可以为null的。

原因如下:ConCurrentHashMap是在多线程场景下使用的,如果ConcurrentHashMap.get(key)的值为null,那么无法判断到底是key对应的value的值为null还是不存在对应的key值。而在单线程场景下的HashMap中,可以使用containsKey(key)来判断到底是不存在这个key还是key对应的value的值为null。在多线程的情况下使用containsKey(key)来做这个判断是存在问题的,因为在containsKey(key)ConcurrentHashMap.get(key)两次调用的过程中,key的值已经发生了改变。


点击面试手册,获取本站面试手册PDF完整版