ArrayList 使用数组来存储数据,数组的下标为 int 型。在 ArrayList 的源码中定义的存储数组下标最大值为:
private static final int MAX_ARRAY_SIZE = Integer.MAX_VALUE - 8;
不明白这减个 8 是用来存储什么的?注释” Some VMs reserve some header words in an array “ 没懂这指的是什么? jvm 原理中也没有找到数组存储的最大容量的显式说明,请各位技术大神解惑 :-)