ArrayList
jdk 7
初始化默认为 大小为10的数组。
ArrayList list = new ArrayList<>();
ensureCapacityInternal(int capacity)
if(本身的已有的长度-数组总长度)<0
不会扩容,否则扩容
扩容如果超了,就扩容为1.5倍。
扩容完还是小,就用现在真正需要的长度
扩容完将原数组的值,复制给新的数组。
如果最大还不够,就报错!
jdk 8
初始化的时候为空的数组。
底层Object 初始化{},并没有10的长度。
list。add 第一次调用add 底层会调用长度为10的数组。