private static final int MAX_ARRAY_SIZE = Integer.MAX_VALUE - 8;
最大容量为Integer.MAX_VALUE-8,数组
public ArrayList(int initialCapacity)
经过以上构造函数指定初始容量,而int最大值就是Integer.MAX_VALUE,-8是为了不oom,由于有些vm可能存储头信息在数组里。所以最大容量为Integer.MAX_VALUE-8。可是当MAX_ARRAY_SIZE仍不够时,容量会扩展至HugeCapacity,为Integer.MAX_VALUE。函数