一:Arraylist集合底层数据是数组
使用空参构造创建Arraylist对象时,底层所对应的数组长度为0,当调用add方法添加新元素时,Arraylist会创建一个新的、长度为10的数组,默认初始值都为null,这个数组名叫做elementData;这个数组还有一个变量size,size有两层含义:(1)表示下一次要操作的索引(2)表示数组里元素的个数
二:Arraylist集合自动扩容原理
当Arraylist底层数据这个数组被元素存满时,集合会自动扩容;底层数据的新数组的长度是原数组长度的1.5倍,它会把所有的元素都拷贝到新数组里,并且size的值不变,仍是10,再次存入新元素时,就会存到size指向的位置。