Какова точная цель вызова System.exit() в Java

Я немного запутался с system.exit. Я основал некоторые вещи по этой ссылке.

но у меня есть некоторые сомнения в моей голове. Если я использую выход из системы, что будет с созданными объектами, переменными и т. Д. Все разрушается, когда я называю system.exit? Если "Да", то почему мы принудительно собираем мусор перед system.exit()? Если "Нет", как долго созданные объекты хранятся в JVM (памяти)? Если после выхода из системы снова запустить программу, что будет с предыдущими объектами, если они не были уничтожены после того, как я вызвал System.exit();?

Благодарю.

3 ответа

Если я использую выход из системы, что будет с созданными объектами, переменными и т. Д. Все разрушается, когда я называю system.exit?

Только пользовательские потоки уничтожаются при выходе из системы.

почему мы принудительно собираем мусор перед system.exit()?

Мы не делаем, и это не будет очень полезно, поскольку это может ничего не делать.

как долго созданные объекты хранятся в JVM (памяти)?

Пока они больше не нужны и не происходит очистка, JVM действительно выходит

Если после выхода из системы снова запустить программу, что будет с предыдущими объектами, если они не были уничтожены после того, как я вызвал System.exit();?

Они уничтожаются, когда программа заканчивается. В любом случае, каждая программа получает свой новый набор переменных, даже если она запускается несколько раз. Нет разделения переменных между программами.

Краткий ответ о том, что вы должны знать о exit:

  • Это полезно, потому что это единственный способ установить статус выхода.

  • Как правило, единственное место, где вы должны использовать это в конце main метод.

  • Это приводит к завершению JVM (убивая процесс, таким образом, обязательно освобождая всю память).

Я думаю, что в этом случае полезно думать о JVM как о программе, работающей на компьютере. System.exit() завершает эту программу. Ничто в программе не хранится в операционной системе компьютера или во время выполнения JVM, хотя программа, конечно, может записывать данные в долговременное хранилище. Но все переменные, созданные объекты и т. Д. Исчезли и не могут быть восстановлены.

Другие вопросы по тегам