参考答案
结论:HashMap底层为数组+链表+红黑树,线程安全Map有Hashtable、Collections.synchronizedMap、ConcurrentHashMap。原理:HashMap对key的hashCode高16位异或低16位扰动,与容量-1按位与得桶下标;冲突先链表存储,长度≥8且数组长≥64转红黑树,≤6退链表。线程安全对比:Hashtable所有方法synchronized锁全表,并发低;synchronizedMap静态包装同锁全表;ConcurrentHashMap 1.7分段锁,1.8 CAS+ synchronized锁单个桶头节点,支持并发读写且弱一致迭代。