ArrayList最大容量

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。

猜你喜欢

转载自my.oschina.net/u/3574706/blog/1647992
今日推荐