hashMap扩容:hashMap进行put操作时,因为负载因子为0.75,当map中存储的元素达到12个时,再往map里面put第13个键值对,要先将第13个键值对存入map,然后才开始扩容。
1.7 和1.8版本链表插入方法不同
1.7 头插法:节点插入在链表的头部,多线程环境下,容易形成死环(头插法将一个桶下的节点排序好,在扩容的时候,节点之间的顺序会发生改变)
1.8:尾插法:当哈希码值计算出来在同一个桶时,如果key不重复,新put的节点会连接在当前链表的最后。
为何加载因子为0.75:
1.在空间占用和查询时间之间取得了较好的权衡
2.大于这个值,空间节省了,但是查询的效率会变低
3.小于这个值,查询效率变高了,但是空间浪费大。
hashMap线程不安全,在多线程环境下,进行put操作,容易造成数据丢失。
hashMap的key可以为null,