Queremos brindarte la mejor información que descubrimos por todo internet. Esperamos que te resulte útil y si deseas comentarnos alguna mejora hazlo con total libertad.
Solución:
La JVM usa una pila de valores para contener valores, y la pila se comparte entre todas las llamadas a métodos en ese subproceso. Normalmente, cuando un no-void El método regresa, el valor devuelto se coloca en la pila y la persona que llama lo saca de la pila y lo usa o lo descarta.
JLS 14.17 El return
Declaración
[…] A
return
declaración sin Expresiónintentos para transferir el control al invocador del método o constructor que lo contiene.[…] A
return
declaración con un Expresiónintentos transferir el control al invocador del método que lo contiene; el valor de la Expresión se convierte en el valor de la invocación del método.[…] Se puede ver, entonces, que una declaración de devolución siempre se completa abruptamente.
La terminación abrupta lo hace significa que las siguientes declaraciones no se ejecutarán y, de hecho, esto puede conducir a un error en tiempo de compilación en algunos casos (JLS 14.21 declaraciones inalcanzables)
void unreachable()
return;
System.out.println("Bye!"); // DOESN'T COMPILE! Unreachable code!
Continuando…
Las descripciones anteriores dicen “intentos transferir el control” en lugar de simplemente “transferir el control” porque si hay alguna
try
declaraciones […] entonces cualquierfinally
cláusulas […] será ejecutado […] Terminación abrupta de unfinally
cláusula puede interrumpir la transferencia de control iniciada por unreturn
declaración.
Esto significa que la siguiente función return -1
en vez de 0
.
int tryReturn()
try
return 0;
finally
return -1;
En ausencia de try-finally
sin embargo, el control será transferido inmediatamente, y el Expresión valor, si lo hay, se pasará a la persona que llama.
Reseñas y puntuaciones del post
Si tienes algún contratiempo y disposición de limar nuestro ensayo te recordamos realizar una nota y con deseo lo estudiaremos.