1、底层是Object数组,叫做 elementData
2、默认容量10,叫做 DEFAULT_CAPACITY,不是初始容量
3、如果不指定初始容量,刚new出来的list如果没有存储任何对象,则容量为0,但是如果指定了初始容量,刚开始size也是为0
ArrayList<String> list = new ArrayList();
System.out.println(list.size());
// 结果是0
ArrayList<String> list = new ArrayList(5);
System.out.println(list.size());
// 结果也是0
4、ArrayList的size指的是存的东西的数量,而不是容量
public boolean add(E e) {
ensureCapacityInternal(size + 1); // Increments modCount!!
elementData[size++] = e;
return true;
}