1、创建一个ArrayList对象,并添加一个元素
2、执行构造方法(目前还是一个空数组)
3、添加元素add(size目前为0)
判断底层数组是否是当时初始化时的数组,如果是(还未扩容),返回(当前元素数量,默认初始化数量(10))之中的最大值,如果不是(已经扩过容),返回当前元素的数量。
判断当前元素个数的数量,是否大于初始化时设定的容量,如果大于,则扩容,不大于则返回add方法,添加元素,结束add方法
ps:ArrayList 创建底层数组,是在第一次添加时,new 的时候一个空的数组,既elementDate.length=0
ArrayList扩容,默认扩容到当前数量的1.5倍。
判断当前数组是否是当时初始化的数组,如果是(第一次扩容,第一次增加数据),根据扩容数量创建一个新的数组,如果不是则根据扩容数量和数据的类型,通过反射创建一个新的数组,最后将原来数组的数据,复制到新创建的数组中,返回给elementData。
最后回到add方法,添加的一个元素。
个人学习记录,如果错误,请您指正,万分感谢!