以下是一种情况: -
ArrayList<ArrayList<Object>> listOfLists = new ArrayList<ArrayList<Object>>();
listOfLists.ensureCapacity(Integer.MAX_VALUE);
下面是堆栈跟踪: -
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)
为什么jvm会把OOME扔到这里?我的内存大约是2 GB~2147483647字节