一、简介
二、分析
2.1 类结构
2.1.0 类结构图
2.2 内部类
2.2.0 内部类列表图
2.2.1 Itr
2.2.2 SuppliedThreadLocal
2.2.3 ListItr
2.2.4 SubList
2.3 字段
2.3.0 字段列表图
2.3.1 DEFAULT_CAPACITY
-
/** * 默认的初始容量为10 */ private static final int DEFAULT_CAPACITY = 10;
2.3.2 DEFAULTCAPACITY_EMPTY_ELEMENTDATA
/**
* 共享空数组实例,用于默认大小的空实例。
* 我们将其与EMPTY_ELEMENTDATA区分开来,以了解添加第一个元素时要扩充多少。
*/
private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {};
2.3.3 elementData
/**
* 存储ArrayList元素的数组缓冲区,其容量为数组长度。
* 所有elementData初始化为DEFAULTCAPACITY_EMPTY_ELEMENTDATA的数组在第一个元素被添加的时候都会扩
* 充到默认容量DEFAULT_CAPACITY即10
*/
transient Object[] elementData; // non-private to simplify nested class access
2.2.4 EMPTY_ELEMENTDATA
/**
* 用于空实例的共享空数组实例。
*/
private static final Object[] EMPTY_ELEMENTDATA = {};
2.2.5 MAX_ARRAY_SIZE
/**
* 要分配的数组的最大大小。一些虚拟机在数组中保留一些头字。
* 尝试分配较大的数组可能导致内存不足错误:请求的数组大小超过了VM限制
*/
private static final int MAX_ARRAY_SIZE = Integer.MAX_VALUE - 8;
2.2.6 size
/**
* 数组包含的元素个数
*/
private int size;
2.4 方法
2.4.0 方法列表图
2.4.1