我一直认为OutOfMemoryError
重新启动JVM。
但是我看到一个OutOfMemoryError
发生的行为,这没有从代码中捕获(实际上我什至不知道这是否可能)
并且JVM
继续(尽管会生成核心转储)。
谁能帮助我了解这种行为?
最佳答案
OutOfMemoryError向一个线程报告其内存分配失败。
int count = 0;
long start = System.currentTimeMillis();
for (int i = 0; i < 10000000; i++) {
try {
long[] longs = new long[Integer.MAX_VALUE];
} catch (OutOfMemoryError e) {
count++;
}
}
long time = System.currentTimeMillis() - start;
System.out.printf("Got %,d OutOfMemoryErrors in %.1f seconds%n", count, time/1e3);
版画
Got 10,000,000 OutOfMemoryErrors in 3.9 seconds
关于java - Java中的OutOfMemoryError行为,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11774399/