HashMap是线程不安全的,底层采用数组+链表+红黑树的结构
HashTable是线程安全的,因为使用了Synchronized锁住了整个table,底层采用了数组+链表
ConcurrentHashMap是线程安全的,采用了CAS+同步锁Synchronized对链表头节点进行锁定,底层使用数组+链表+红黑树
HashMap的key和value可以是null,其他两个不行。
HashMap是线程不安全的,底层采用数组+链表+红黑树的结构
HashTable是线程安全的,因为使用了Synchronized锁住了整个table,底层采用了数组+链表
ConcurrentHashMap是线程安全的,采用了CAS+同步锁Synchronized对链表头节点进行锁定,底层使用数组+链表+红黑树
HashMap的key和value可以是null,其他两个不行。