ArrayList

如何扩容

1.检查加入新元素后是否会超过数组的容量,如果超过,就进行一次扩容

2.设置新的容量为老容量的1,5

最多不超过2^31-1 (Java 8中ArrayList的容量最大是Integer.MAX_VALUE - 8,即2^31-9。这是由于在Java 8中,ArrayList内部实现进行了一些改进,使用了一些数组复制的技巧来提高性能和内存利用率,而这些技巧需要额外的8个元素的空间来进行优化。)

3.申请一个容量为老容量的1.5倍的新数组,然后把原数组的元素复制上去

ArrayList的序列化