8 votes

Quel est le but exact de l'appel de System.exit() en java ?

Je suis un peu perdu avec system.exit. J'ai trouvé certaines choses à partir de ceci lien .

mais j'ai quelques doutes dans mon esprit. Si j'utilise system.exit, que va-t-il arriver aux objets, variables et autres créés ? Est-ce que tout est détruit une fois que j'ai appelé system.exit ? Si "Oui", alors pourquoi forcer le garbage collection avant system.exit() ? Si "Non", combien de temps les objets créés sont stockés dans la JVM (mémoire) ? Si on exécute à nouveau le programme après avoir quitté le système, qu'arrivera-t-il aux objets précédents s'ils ne sont pas détruits une fois que j'ai appelé system.exit(); ?

Merci.

6voto

Peter Lawrey Points 229686

Si j'utilise la sortie système, qu'arrivera-t-il aux objets, variables et autres créés ? Est-ce que tout est détruit une fois que j'ai appelé system.exit ?

Seuls les threads utilisateurs sont détruits par une sortie du système.

pourquoi forcer le garbage collection avant system.exit() ?

Nous ne le faisons pas et cela ne serait pas très utile car cela pourrait ne rien faire.

combien de temps les objets créés sont stockés dans la JVM (mémoire) ?

Jusqu'à ce qu'ils ne soient plus nécessaires et qu'un nettoyage se produise, de la JVM sort réellement.

Si je relance le programme après avoir quitté le système, qu'arrivera-t-il aux objets précédents s'ils n'ont pas été détruits lorsque j'ai appelé System.exit(); ?

Ils sont détruits lorsque le programme se termine. Dans tous les cas, chaque programme reçoit son propre jeu de variables, même s'il est exécuté plusieurs fois. Il n'y a pas de partage de variables entre les programmes.

5voto

arcy Points 5482

Je pense que dans ce cas, il est utile de considérer la JVM comme un programme fonctionnant sur un ordinateur. System.exit() met fin à ce programme. Rien de ce qui se trouve dans le programme n'est conservé par le système d'exploitation de l'ordinateur ou par le runtime de la JVM, même si le programme, bien sûr, peut écrire des choses sur un stockage à long terme. Mais les variables, les objets créés, etc. ont tous disparu et ne peuvent être restaurés.

5voto

Chris Martin Points 5195

La réponse courte de ce que vous devez savoir sur exit :

  • C'est utile parce que c'est le seul moyen de définir la valeur de l'option statut de sortie .

  • En général, le seul endroit où vous devez l'utiliser est à la fin d'un fichier de type main méthode.

  • Elle entraîne la terminaison de la JVM (en tuant le processus, ce qui libère nécessairement toute la mémoire).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X