正确结束Java命令行应用程序

Tri*_*ack 8 java garbage-collection conventions

我只是想知道.我需要System.exit(0);mainJava命令行应用程序的方法结束之前调用吗?如果是这样,为什么?如果我只是一直放在那里,让它自己退出有什么区别0?有什么不清理的?

提前致谢.

Gop*_*opi 16

没有!您并不总是需要调用System.exit(0)来结束java程序.如果您的代码没有生成非守护程序线程,则应用程序将在完成主线程任务后自动终止.

如果你的main方法导致产生一些非守护进程线程,当你的main方法到达结束时仍然处于活动状态并执行某些处理,那么在这些线程完成之前,应用程序将不会终止.在这种情况下,如果您显式调用System.exit(0),则应用程序将立即终止并终止所有线程.

请参考提及细节的线程的javadoc.