Нет! Вам не всегда нужно позвонить System.exit(0)
, чтобы закончить Java-программу. Если не существует потока, не созданного вашим демоном, это приложение автоматически прекратится после завершения задачи основного потока.
Если ваш основной метод приводит к появлению некоторого потока не-демона, который все еще жив, выполняет некоторую обработку, пока ваш основной метод достиг цели, тогда приложение не будет завершено до тех пор, пока эти потоки не будут завершены. В этом случае, если вы явно вызываете System.exit(0)
, приложение немедленно прекратит уничтожение всех ваших потоков.
Обратите внимание, что javadoc of Thread, где упоминается подробная информация.
См. Также http://stackoverflow.com/questions/3715967/when-should-we-call-system-exit-in-java – Qwerky