以下源码基于jdk1.8
ArrayList
数组长度默认是10
扩容 新长度=原长度*1.5
Vector
数组长度默认是10
扩容
1)capacityIncrement>0
新数组长度=原数组长度+capacityIncrement
2)capacityIncrement<=0
新数组长度=原数组长度*2
StringBuilder/StringBuffer
数组长度默认是16
扩容
新数组长度=原数组长度*2+2
HashMap
扩容
扩容条件:元素数量>扩容阈值(扩容阈值=数组长度*0.75)
新数组长度=原数组长度*2
树化
链表长度>8并且数组长度>=64