如何使 JVM 崩溃?
我正在读一本关于编程技能的书,作者问受访者:“你怎么让JVM崩溃?我认为你可以通过编写一个无限的for循环来做到这一点,这个循环最终会耗尽所有的内存。
有人知道吗?
我正在读一本关于编程技能的书,作者问受访者:“你怎么让JVM崩溃?我认为你可以通过编写一个无限的for循环来做到这一点,这个循环最终会耗尽所有的内存。
有人知道吗?
我不会把抛出一个 OutOfMemoryError 或 StackOverflowError 称为崩溃。这些只是正常的例外。要真正使 VM 崩溃,有 3 种方法:
对于最后一种方法,我有一个简短的示例,它将很好地使Sun Hotspot VM安静地崩溃:
public class Crash {
public static void main(String[] args) {
Object[] o = null;
while (true) {
o = new Object[] {o};
}
}
}
这会导致GC中的堆栈溢出,因此您不会获得StackOverflowError,而是真正的崩溃,包括hs_err*文件。