在java中调用System.exit()的确切目的是什么

maX*_*nda 8 java garbage-collection jvm object systemexit

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

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

谢谢.

Pet*_*rey 6

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

系统出口仅销毁用户线程.

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

我们不这样做,因为它可能没有做任何事情,所以它不会非常有用.

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

在不再需要它们并且发生清理之前,JVM真的会退出

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

程序结束时会将其销毁.在任何情况下,即使多次运行,每个程序都会获得自己的新变量集.程序之间不存在变量共享.


arc*_*rcy 5

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


Chr*_*tin 5

你应该知道的简短回答exit:

  • 它很有用,因为它是设置退出状态的唯一方法.

  • 通常,您应该使用它的唯一地方是main方法的末尾.

  • 它导致JVM终止(终止进程,因此必然释放所有内存).