ConcurrentHashMap value可以为null吗?为什么
时间: 2023-11-21 11:53:35 浏览: 74
concurrenthashmap1.7.docx
ConcurrentHashMap的value可以为null,但是key不可以为null。这是因为ConcurrentHashMap是为多线程设计的,如果允许value为null,那么在多线程环境下,就会出现二义性问题,无法判断某一个时刻返回的null值,到底是值为null,还是压根就不存在,也就是二义性问题不可被证伪。而key为null时,会抛出空指针异常,因为ConcurrentHashMap内部使用了一些特殊的技巧来保证线程安全,这些技巧需要key不为null才能正常工作。因此,ConcurrentHashMap设计者为了避免这些问题,直接杜绝了key或value为null的情况。
阅读全文