HashMap 和 ConcurrentHashMap 的区别
主要区别:
1,线程安全性:
HashMap:非线程安全,多线程环境下可能导致数据不一致
ConcurrentHashMap:线程安全,专为多线程设计
2,并发性能
HashMap:不支持并发读写,多线程操作可能抛异常ConcurrentModificationException
ConcurrentHashMap:采用分段锁(Java7)或 CAS+synchronized(Java8+),允许多线程并发读写
3,空值支持
HashMap:允许键和值为null
ConcurrentHashMap:不允许键和值为null