System.exit(int status) :是用来结束当前正在运行中的java虚拟机。

System.exit(0) :status 参数,那么表示正常退出程序。

System.exit(1) :status 1或者非零参数,那么表示非正常退出程序。


在一个if-else判断中,如果我们程序是按照我们预想的执行,到最后我们需要停止程序,那么我们使用 System.exit(0)


System.exit(1) 一般放在 catch 块中,当捕获到异常,需要停止程序,我们使用System.exit(1) 这个 status=1 是用来表示这个程序是非正常退出。


进一步探索 System.exit 被调用后的行为,它在虚拟机在退出前会执行两个清除任务。

第一,它会执行所有通过 Runtime.addShutdownHook 注册的 shutdown hooks 它能有效的释放JVM之外的资源。

 第二,执行清除任务,运行相关的 finalizer 方法终结对象。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐