8月16日
HashMap
- HashMap是线程不安全的
- 允许key和value为null
- 不保证存储的有序性
- 影响HashMap性能的两个变量,init capacity(16)和loadFactor(0.75),load链表长度,减少Hash
- faile-fast机制,不允许迭代遍历时remove,add
- 1.7和1.8jdk版本的数据存储结构.Entry,数组+链表。Node,数组+链表/红黑树
- 扩容大小2倍,容量为2次幂,方便获取捅数组位置提高效率
- HashSet基于HashMap实现,value为object对象
HashTable
- 线程安全,synchronize修饰方法
- key,value不为null
- 不保证有序性
- initcapcity(11) loadFactor 0.75
- 扩容大小2倍+1,容量为奇数或者素数,使哈希更加均匀
ConcurrentHashMap
- 并发容器,多线程下更加高效
- key或者value不为null
- cas无所操作。inittable初始化.SIZECTl,synchronnize
- 扩容,rehash