JDK7:
ArrayList arr = new ArrayList();
//底层创建了长度是10的Object[]数组 elementData
arr.add(123);//如果此次的添加导致底层elementdata数组容量不够,则扩容
默认情况下,扩容为原来的1.5倍,同时需要将原有数组中的数据
复制到新的数组中
结论:建议开发中使用带参数的构造器
JDK8:
ArrayList arr = new ArrayList();
//底层Object[]数组 elementData初始化为{} 并没有创建长度为10的数组
arr.add(123);
//第一次调用add()时,底层才创建了长度为10的数组
扩容时和JDK7一样
小结:JDK8里改的要好一些,节省了内存
|
|