List<Integer> list = new ArrayList<>(); list 的初始容量到底是多少
在 JDK 8 中 查看 ArrayList 源码
/**
* Constructs an empty list with an initial capacity of ten.
*/
public ArrayList() {
this.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA;
}
上面的注释是 构造一个空数组 初始容量为 10 (JDK7中初始容量为10 ,注释应该是没及时更新),但是 查看 DEFAULTCAPACITY_EMPTY_ELEMENTDATA 发现
/**
* Shared empty array instance used for default sized empty instances. We
* distinguish this from EMPTY_ELEMENTDATA to know how much to inflate when
* first element is added.
*/
private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {};
{} 其实就是个空数组,inflate when first element is added 就是说当第一个元素添加的时候才扩容(inflate)