https://blog.csdn.net/qq_36178165/article/details/135390557

满了之后,新创建一个 1.5 倍大小的数组,使用 Arrays.copyOf() 方法将原来数组的内存拷贝到新数组中。

1、首先,ArrayList 的底层是数组结构,所以在初始化的时候会给它一个初始大小 10。当然也可以在构建的时候通过构建器指定他的大小或者通过 size() 方法设置大小。

ArrayList<String> list = new ArrayList<>(); // 默认初始容量为10
ArrayList<String> listWithCapacity = new ArrayList<>(20); // 指定初始容量为20

2、每次新增都会判断空间是否足够使用,如果足够,则直接存入,如果不够则进行自动扩容。

具体分为三步:

3、这是属于一般的list.add()方法的扩容,但是还存在一种批量添加list.addAll()。

比如:list1.size()=1且容量=10,list2.size()=15  操作:list1.addAll(list2)