Was genau ist der Aufruf von System.exit () in Java?

8

Ich bin ein wenig verwirrt mit system.exit. Ich habe einige Dinge über diesen Link gegründet.

Aber ich habe einige Zweifel in meinem Kopf. Wenn ich System-Exit verwende, was passiert mit den erstellten Objekten, Variable und ect. Wird alles zerstört, nachdem ich system.exit aufgerufen habe? Wenn "Ja", warum zwingen wir dann die Garbage Collection vor system.exit ()? Wenn "Nein" wie lange die erstellten Objekte in der JVM (Speicher) gespeichert sind? Wenn das Programm nach dem Verlassen des Systems erneut ausgeführt wird, was passiert mit den vorherigen Objekten, wenn sie nicht zerstört werden, nachdem ich System.exit ();?

aufgerufen habe

Danke.

    
maXfenda 12.08.2013, 10:36
quelle

3 Antworten

6
  

Wenn ich den System-Exit verwende, was passiert mit den erstellten Objekten, Variable und ect. Wird alles zerstört, nachdem ich system.exit aufgerufen habe?

Nur Benutzer-Threads werden durch einen System-Exit zerstört.

  

Warum erzwingen wir die Garbage Collection vor system.exit ()?

Wir tun es nicht und es wäre nicht sehr nützlich, da dies nichts tun könnte.

  

Wie lange sind die erstellten Objekte in der JVM (Speicher) gespeichert?

Bis sie nicht mehr benötigt werden und eine Bereinigung auftritt, verlässt die JVM wirklich

  

Wenn das Programm nach dem Verlassen des Systems erneut ausgeführt wird, was passiert mit den vorherigen Objekten, wenn sie nicht zerstört wurden, nachdem ich System.exit ();?

aufgerufen habe

Sie werden zerstört, wenn das Programm beendet ist. In jedem Fall erhält jedes Programm seine eigenen neuen Variablen, selbst wenn es mehrmals ausgeführt wird. Es gibt keine Freigabe von Variablen zwischen Programmen.

    
Peter Lawrey 12.08.2013 10:55
quelle
5

Die kurze Antwort darauf, was Sie über exit wissen sollten:

  • Es ist nützlich, weil es die einzige Möglichkeit ist, den Exit-Status festzulegen.

  • Im Allgemeinen sollten Sie die Methode nur am Ende einer main -Methode verwenden.

  • Dies führt zu einer JVM-Beendigung (den Prozess wird beendet, wodurch notwendigerweise der gesamte Speicher freigegeben wird).

Chris Martin 29.07.2014 14:12
quelle
5

Ich denke in diesem Fall ist es nützlich, die JVM als ein Programm zu betrachten, das auf einem Computer läuft. System.exit () beendet das Programm. Nichts in dem Programm wird von dem Betriebssystem des Computers oder der JVM-Laufzeit beibehalten, obwohl das Programm natürlich Dinge in den Langzeitspeicher schreiben kann. Aber Variablen, erstellte Objs usw. sind alle weg und können nicht wiederhergestellt werden.

    
arcy 12.08.2013 10:45
quelle