通過查看源碼debug,可以看到一開始我們申請的是一個空的object數據,當我使用list.add()時,它會判斷當前容量的大小;先與默認capacity10比較,如果小與10把數組的大小使用Arrays.copy進行數組擴容爲0,當大於10時,擴大的容量爲:
newCapacity = oldCapacity + (oldCapacity >> 1);
當大於最大容量時:
return (minCapacity > MAX_ARRAY_SIZE) ?
Integer.MAX_VALUE :
MAX_ARRAY_SIZE;
可以看出大於最大容量時,使用的是Integer的最大值