ArrayList list = new ArrayList(); //底层创建长度是10的数组
list.add(13); //elementData[0] = new Integer(13);
//...
list.add(11); //如果此次添加导致数组容量不够则扩容,默认扩容为1.5倍,同时复制原数组数据到新数组
结论:建议开发中使用带参构造器,确立数组容量
jdk 1.8的变化
ArrayList list = new ArrayList(); //底层创建数组为{},没有创建长度是10的数组
list.add(13); //第一次调用add(),底层才创建长度是10的数组
//... 后续添加和扩容与jdk1.7一致