1.在newHashMap对象时,如果没有指定初始容量和负载系数,则默认初始容量为16,负载系数为0.75
2.在table表的数据量已经等于负载值(当前容量*负载系数),则会将table表扩容至当前容量的2倍,负载系数负载值也变为原负载值的两倍,如:初始容量为16,负载系数为0.75,那么负载值就是16*0.75 = 12,当添加完第12个元素后,就会立马进行扩容,容量扩容为32,负载值也变成24,以此类推;
3.链表树化的条件
1) 有一个链表达到8个元素,并且table表容量大于等与64,即会将这个达到8个元素的链表转成红黑树
2)如果有一个链表已经达到8个元素,但是table表容量并没有到达64,就会立马对table表按照上面的规则进行扩容,当下一次添加数据时;
3)instance:
如果某条链表到达了8个元素,而这个table表的容量才16,就会将这个table表的容量扩容至32,
下次添加数据,如果又添加到了这条链表,就会将table表扩容至64,再次添加数据,如果又添加到了这条链表后面,或者其他链表使某条链表达到8个元素,就会将这条链表转成红黑树