Een Java-programma beëindigen

Ik heb manieren gevonden om mijn Java-programma’s te beëindigen (afsluiten of stoppen). Ik heb er twee oplossingen voor gevonden.

  1. met behulp van return;
    Als ik de uitvoering van mijn programma wil beëindigen of beëindigen, voeg ik dit toe.

  2. met behulp van System.exit();
    Soms gebruikte ik het. Ik las over Sytem.exit()van Deze vraag.

Dus ik ken ze allebei een beetje. Maar ik ben nog steeds in de war over hoe ze eigenlijk werken. Controleer onderstaande codes…

public class Testing {
public static void main(String... str) {
    System.out.println(1);
    System.exit(0);
    System.out.println(2);
    return;
 }
}

Ik weet zeker dat 2niet zal verschijnen. Ik zou graag willen weten waarom return;of andere codes onder de verklaring van System.exit(0);kunnen schrijven en wat de echte definitie was voor return;(omdat het vreemd is voor mij returnzonder variabelen of waarden) ?


Antwoord 1, autoriteit 100%

Het aanroepen van System.exit(0)(of welke andere waarde dan ook) zorgt ervoor dat de Java virtual machine afsluit, waardoor het huidige proces wordt beëindigd. De parameter die u doorgeeft, is de retourwaarde die het java-proces teruggeeft aan het besturingssysteem. U kunt deze oproep overal in uw programma doen – en het resultaat zal altijd hetzelfde zijn – JVM beëindigt. Omdat dit simpelweg een statische methode in de klasse Systemaanroept, weet de compiler niet wat hij zal doen – en klaagt hij daarom niet over onbereikbare code.

return-instructie breekt eenvoudig de uitvoering van de huidige methode af. Het betekent letterlijk de besturing teruggeven aan de aanroepmethode. Als de methode is gedeclareerd als void(zoals in uw voorbeeld), hoeft u geen waarde op te geven, omdat u voidzou moeten retourneren. Als de methode is gedeclareerd om een bepaald type te retourneren, moet u de waarde opgeven die moet worden geretourneerd – en deze waarde moet van het opgegeven type zijn.

returnzou ervoor zorgen dat het programma alleen wordt afgesloten als het binnen de mainmethode van de hoofdklasse die wordt uitgevoerd is. Als je er code achter probeert te zetten, zal de compiler klagen over onbereikbare code, bijvoorbeeld:

public static void main(String... str) {
    System.out.println(1);
    return;
    System.out.println(2);
    System.exit(0);
}

zal niet compileren met de meeste compilers – er wordt een unreachable code-fout gemaakt die verwijst naar de tweede System.out.println-aanroep.


Antwoord 2, autoriteit 14%

  1. System.exit()is een methode die ervoor zorgt dat JVM afsluit.
  2. returngeeft de besturing gewoon terug naar de oproepfunctie.
  3. return 8geeft controle en waarde 8 terug naar de aanroepmethode.

Antwoord 3, autoriteit 11%

Omdat System.exit()gewoon een andere methode is voor de compiler. Het leest niet vooruit en komt erachter dat het hele programma op dat moment stopt (de JVM stopt). Uw besturingssysteem of shell kan het gehele getal lezen dat wordt teruggegeven in de methode System.exit(). Het is standaard dat 0betekent “programma is gestopt en alles is goed gegaan” en elke andere waarde die aangeeft dat er een fout is opgetreden. Het is aan de ontwikkelaar om deze retourwaarden voor alle gebruikers te documenteren.

returnAan de andere kant is een gereserveerd sleutelwoord dat de compiler goed kent.
returnRetourneert een waarde en beëindigt de loop van de huidige functie die een back-up van de stapel naar de functie verplaatsen die het heeft ingeroepen (indien aanwezig). In uw code hierboven retourneert het voidzoals u niets hebt geleverd om terug te keren.


Antwoord 4, Autoriteit 7%

System.exit () beëindigt de JVM.
Niets na systeem.exit () wordt uitgevoerd.
Return wordt over het algemeen gebruikt voor het verlaten van een methode. Als het retourtype ongeldig is, kunt u terugkeren;
Maar ik denk niet dat het een goede gewoonte is om het in de hoofdmethode te doen.
U hoeft niets te doen voor het beëindigen van een programma, tenzij oneindige lus of een vreemde andere uitvoeringsstromen.


Antwoord 5, Autoriteit 6%

dus rendement; Bepaalt niet echt uw Java-programma , , het beëindigt alleen uw Java-functie (void) . Omdat in uw geval de functie de hoofdfunctie van uw aanvraag is, retourneert u; zal ook de aanvraag beëindigen. Maar de terugkeer; In uw voorbeeld is nutteloos, omdat de functie rechtstreeks na deze return wordt beëindigd …

Het System.exit () zal uw programma volledig beëindigen en het sluit elk open venster.


Antwoord 6, Autoriteit 5%

  • Wel, eerste systeem.Exit (0) wordt gebruikt om het programma te beëindigen en eronder uitspraken hieronder is het niet correct, hoewel de compiler geen fouten gooit.
  • Een vlakte return;wordt gebruikt in een methode van ongeldig retourtype om de besturing van de uitvoering naar zijn moedermethode te retourneren.

Antwoord 7, Autoriteit 4%

wat komt terug; gemiddelde?

return;betekent echt dat het niets retourneert <void. Dat is het.

waarom retourneren; of andere codes kunnen onder de verklaring van System.exit(0) schrijven;

Het is toegestaan omdat de compiler niet weet dat het aanroepen van System.exit(0)de JVMzal beëindigen. De compiler geeft alleen een waarschuwing – onnodig retourstatement

Other episodes