Terminar un progtwig Java

Descubrí formas de terminar (apagar o detener) mis progtwigs Java. Encontré dos soluciones para eso.

  1. usando retorno;
    Cuando deseo salir o terminar la ejecución de mi progtwig, agrego esto.

  2. utilizando System.exit () ;
    A veces lo usé Leí sobre Sytem.exit () de esta pregunta .

Entonces, sé un poco sobre ambos. Pero todavía estoy confundido sobre cómo funcionan realmente. Por favor revisa los códigos a continuación …

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

Estoy seguro de que 2 no aparecerá. Me gustaría saber por qué return; u otros códigos pueden escribir debajo de la statement de System.exit(0); y cuál era la definición real para el return; ( porque es extraño que return sin variables ni valores )?

Llamar a System.exit(0) (o cualquier otro valor para el caso) hace que la máquina virtual Java salga, finalizando el proceso actual. El parámetro que pase será el valor de retorno que el proceso de java devolverá al sistema operativo. Puede realizar esta llamada desde cualquier lugar de su progtwig, y ​​el resultado siempre será el mismo: la JVM finalizará. Como esto simplemente llama a un método estático en la clase de System , el comstackdor no sabe qué hará, y por lo tanto no se queja de un código inalcanzable.

statement de return simplemente aborta la ejecución del método actual. Literalmente significa devolver el control al método de llamada . Si el método se declara void (como en su ejemplo), no es necesario que especifique un valor, ya que tendrá que devolver el void . Si se declara que el método devuelve un tipo particular, debe especificar el valor a devolver, y este valor debe ser del tipo especificado.

return haría que el progtwig salga solo si está dentro del método main de la clase principal que se está ejecutando. Si intentas poner el código después, el comstackdor se quejará de un código inalcanzable, por ejemplo:

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

no se comstackrá con la mayoría del comstackdor, produciendo un error de unreachable code apunta a la segunda llamada a System.out.println .

Porque System.exit() es solo otro método para el comstackdor. No lee adelante y se da cuenta de que todo el progtwig se cerrará en ese punto (la JVM se cierra). Su SO o shell puede leer el entero que se devuelve en el método System.exit() . Es estándar que 0 signifique “el progtwig se cerró y todo salió bien” y cualquier otro valor para notificar un error. Depende del desarrollador documentar estos valores de retorno para cualquier usuario.

return por otro lado es una palabra clave reservada que el comstackdor conoce bien. return devuelve un valor y finaliza la ejecución de la función actual moviendo hacia atrás la stack a la función que la invocó (si corresponde). En su código anterior, se void porque no ha proporcionado nada para devolver.

  1. System.exit () es una función que hace que JVM salga.
  2. return simplemente devuelve el control a la función de llamada.
  3. return 8 devolverá el control y valor 8 a la función de llamada.

System.exit () termina la JVM. Nada después de que se ejecuta System.exit (). El retorno generalmente se usa para salir de un método. Si el tipo de devolución es nulo, entonces puede usar return; Pero no creo que sea una buena práctica hacerlo en el método principal. No tiene que hacer nada para finalizar un progtwig, a menos que fluya un bucle infinito o alguna otra ejecución extraña.

Entonces regresa; realmente no termina su progtwig java , solo termina su función java (void) . Porque en su caso la función es la función principal de su aplicación, return; también terminará la aplicación. Pero el regreso; en su ejemplo es inútil, porque la función terminará directamente después de este retorno de todos modos …

System.exit () terminará completamente su progtwig y cerrará cualquier ventana abierta.

Qué devuelve; ¿media?

return; realmente significa que no devuelve nada void . Eso es.

por qué volver; u otros códigos pueden escribir debajo de la statement de System.exit (0);

Está permitido porque el comstackdor no sabe llamar a System.exit(0) terminará la JVM . El comstackdor simplemente dará una advertencia: statement de devolución innecesaria

  • Bien, primero System.exit (0) se utiliza para terminar el progtwig y tener las siguientes declaraciones no es correcto, aunque el comstackdor no arroja ningún error.
  • un return; simple return; se usa en un método de tipo retorno de nulo para devolver el control de ejecución a su método principal.