一尘不染

Java数组有最大大小吗?

java

Java数组可以包含的元素数量是否有限制?如果是这样,那是什么?


阅读 365

收藏
2020-02-26

共1个答案

一尘不染

即使测试很容易,也没有找到正确的答案。

在最新的HotSpot VM中,正确的答案是Integer.MAX_VALUE - 5。一旦超出此范围:

public class Foo {
  public static void main(String[] args) {
    Object[] array = new Object[Integer.MAX_VALUE - 4];
  }
}

你得到:

Exception in thread "main" java.lang.OutOfMemoryError:
  Requested array size exceeds VM limit
2020-02-26