【发布时间】:2011-12-07 22:27:35
【问题描述】:
在我过去的一次采访中,有人要求我编写一个代码来使 JVM 崩溃。我说 System.exit()。它是否正确?有更好的答案吗?
澄清:我可以在开发和部署期间包含我的一段代码。并不是说 JVM 已经在运行,我必须编写一个黑客代码来使另一个 JVM 崩溃。
【问题讨论】:
-
不,这不会崩溃 VM。你可以通过无限循环轻松触发内存溢出。
-
System.exit()只是终止 VM - 这是一个重复的问题 - 看这里 How do you crash a JVM? -
我可以在开发过程中包含代码。
-
这个面试问题首先没有意义!
-
是的,但是内存溢出是程序崩溃,而不是 VM 崩溃。要发生真正的 JVM 崩溃,您必须找到并使用实际的 JVM 错误 - 显然 JVM 崩溃不是正常预期运行时的一部分。