我只是想知道。我是否需要在Java命令行应用程序的System.exit(0);
方法结束之前调用main
?如果是这样,为什么?如果我只是总是放在那里0
,让它自己退出有什么区别?什么没有清理?
提前致谢。
答案 0 :(得分:16)
没有!您并不总是需要调用System.exit(0)
来结束java程序。如果您的代码没有生成非守护程序线程,则应用程序将在完成主线程任务后自动终止。
如果你的main方法导致产生一些非守护进程线程,这些线程在你的main方法到达结束时还在进行某些处理,那么在这些线程完成之前,应用程序将不会被终止。在这种情况下,如果您明确调用System.exit(0)
,则应用程序将立即终止并终止所有线程。
请参阅提及详情的javadoc of Thread。
答案 1 :(得分:2)
无需致电System.exit()
,只需从main()
返回即可。这是退出Java程序的正常习惯用法。
System.exit()
来终止应用程序(这通常意味着由于致命错误导致异常终止)。