没有看到正确的答案,尽管它很容易测试.
在最近的热点虚拟机中,正确答案是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