2.ArrayList的构造方法

169 阅读1分钟

ArrayList的构造方法

1.初始化大小:传入初始化容量,创建数组,可以避免数组扩容从而来提升性能,同时合适使用内存。

2.通过传入一个集合来构建ArrayList,java8中有一段跳过bug的代码,在9中修复了

3.无参构造,使用最为频繁

空参构造创建的ArrayList其实初始化的时候容量是0,ArrayList其实是一个空数组,在第一次添加元素的时候才会触发扩容操作,第一次扩容的容量10,之后是1.5倍。

private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {};

为什么空参构造实例化对象的时候,是给一个空数组?

ArrayList考虑到节省内存,一些使用场景下仅仅是创建了ArrayList对象,实际并未使用。所以,ArrayList优化成初始化是一个空数组,在首次添加元素时,才真正初始化为容量为10的数组。