8

我对 system.exit 有点困惑。我从这个链接创建了一些东西。

但我心中有些疑惑。如果我使用系统退出,创建的对象、变量等会发生什么。一旦我调用system.exit,一切都会被破坏吗?如果“是”,那么为什么我们在 system.exit() 之前强制进行垃圾收集?如果“否”创建的对象在 JVM(内存)中存储多长时间?如果退出系统后再次运行程序,如果之前的对象在我调用 System.exit(); 后没有销毁,会发生什么?

谢谢。

4

3 回答 3

6

如果我使用系统退出,创建的对象、变量等会发生什么。一旦我调用system.exit,一切都会被破坏吗?

只有用户线程被系统出口破坏。

为什么我们在 system.exit() 之前强制进行垃圾收集?

我们没有,它也不会很有用,因为这可能不会做任何事情。

创建的对象在 JVM(内存)中存储多长时间?

直到不再需要它们并进行清理,JVM 才真正退出

如果退出系统后再次运行程序,如果之前的对象在我调用 System.exit(); 后没有销毁,会发生什么?

当程序结束时它们被销毁。无论如何,即使运行多次,每个程序都会获得自己的一组新变量。程序之间没有变量共享。

于 2013-08-12T10:55:32.387 回答
5

您应该了解的简短答案exit

于 2014-07-29T14:12:32.820 回答
5

我认为在这种情况下,将 JVM 视为在计算机上运行的程序很有用。System.exit() 终止该程序。程序中的任何内容都不会被计算机的操作系统或 JVM 运行时保存,尽管程序当然可以将内容写入长期存储。但是变量,创建的objs等都消失了,无法恢复。

于 2013-08-12T10:45:25.053 回答