@ArrayList
#1.8jdk 的Arraylist源码
ArrayList arrayList=new ArrayList();
arrayList.add(1);
new一个集合然后查看其源码
其默认长度为10,1.7直接给长度为10是的空数组,1.8是为空的数组没有给默认长度。
这里可以到new之后的就是给了一个空数组
调用add方法之后查看其源码
比较现在长度与数组长度是否相等,相等则扩容,不等把值添加数组
可以看到每次扩容为1.5倍原数组长度。
vector的创建与1.7的集合一样创建一个长度为10 的数组,扩容为原来的两倍。
另外vectoe的方法加了synchronized关键字,所以其线程安全,但是效率较低所以以基本舍弃。