Collections 为什么调用ensureCapacity(Integer.MAX_VALUE)会抛出OOME?
以下是一个情况:Collections 为什么调用ensureCapacity(Integer.MAX_VALUE)会抛出OOME?,collections,Collections,以下是一个情况: ArrayList<ArrayList<Object>> listOfLists = new ArrayList<ArrayList<Object>>(); listOfLists.ensureCapacity(Integer.MAX_VALUE); 为什么jvm会把我扔到这里?我的堆内存约为2GB~2147483647字节 Exception in thread "main" java.lang.OutOfMemoryErr
ArrayList<ArrayList<Object>> listOfLists = new ArrayList<ArrayList<Object>>();
listOfLists.ensureCapacity(Integer.MAX_VALUE);
为什么jvm会把我扔到这里?我的堆内存约为2GB~2147483647字节
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Arrays.java:3210)
at java.util.Arrays.copyOf(Arrays.java:3181)
at java.util.ArrayList.grow(ArrayList.java:261)
at java.util.ArrayList.ensureExplicitCapacity(ArrayList.java:235)
at java.util.ArrayList.ensureCapacity(ArrayList.java:218)
at com.ankit.collections.OOMETest.main(OOMETest.java:10)