Java数组可以包含的元素数量是否有限制?如果是这样,那是什么?
即使测试很容易,也没有找到正确的答案。
在最新的HotSpot VM中,正确的答案是Integer.MAX_VALUE - 5。一旦超出此范围:
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