/**
* Shared empty array instance used for empty instances.
*
* 用无参构造的共享空数组实例。
*/
private static final Object[] EMPTY_ELEMENTDATA = {};
/**
* distinguish [dɪ'stɪŋɡwɪʃ] vt. 区别,辨认
* inflate [ɪn'fleɪt] vt. 使膨胀,使得意
*
* 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.
*
* 用于无参构造的实例大小共享空的数组实例。
* 我们将其与 EMPTY_ELEMENTDATA 区分开来,以了解添加第一个元素时应该膨胀多少
*
*/
private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {};
如上所示 EMPTY_ELEMENTDATA 和 DEFAULTCAPACITY_EMPTY_ELEMENTDATA 都是一个空的数组应用,它们之间有什么区别呢?
无参构造
/**
* Constructs an empty list with an initial capacity of ten.
* 构造一个空的 List 并制定默认容量为 10
*/
public ArrayList() {
// 无参构造使用的 DEFAULTCAPACITY_EMPTY_ELEMENTDATA 进行初始化
this.elementData &