HashTable和ConcurrentHashMap都是线程安全的。(key都不允许为null)
ConcurrentHashMap 比 HashTable的速度要快。
HashTable的每一个操作方法都加了synchronized关键字。
ConcurrentHashMap则是使用了
分离锁实现多个线程间的并发写操作。
ConcurrentHashMap 在默认并发级别会创建包含 16 个 Segment 对象的数组。每个 Segment 的成员对象 table 包含若干个散列表的桶。每个桶是由 HashEntry 链接起来的一个链表。如果键能均匀散列,每个 Segment 大约守护整个散列表中桶总数的 1/16。