Какова точная цель вызова 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, хотя программа, конечно, может записывать данные в долговременное хранилище. Но все переменные, созданные объекты и т. Д. Исчезли и не могут быть восстановлены.