try {
for(;;) {
s.add("Pradeep");
}
} finally {
System.out.println("In Finally");
}
在try block 中jvm内存不足,那么jvm在没有内存的情况下如何执行finally block ?
输出:
In Finally
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
最佳答案
大概 System.out.println
调用比 s.add("Pradeep")
调用需要更少的内存。
例如,如果 s
是一个 ArrayList
,则 s.add
调用可能会导致列表尝试将其容量加倍。这可能是一个非常需要内存的操作,因此即使 JVM 无法执行这种相对昂贵的任务,它仍可以继续执行也就不足为奇了。
关于java - JVM 在内存不足错误期间的行为?列表 s = new ArrayList<String>();,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7753443/