Sabemos que la declaración de retorno se usa en un determinado método. Uno se usa para devolver el resultado de ejecución de la función, y el otro se usa en funciones con un valor de retorno del tipo vacío. Es solo una declaración de devolución (retorno;). En este momento, se utiliza para finalizar la ejecución del método, es decir, la declaración después de esta devolución no se ejecutará. Por supuesto, en este caso, ya no puede haber ninguna otra declaración después de la declaración de devolución.
Encontré algunas preguntas usando la declaración de retorno en la declaración de try-capch-finalmente
Código 1:
static int intc () {int x = 0; try {x = 1; return x;} finalmente {x = 3; }} Código 2: Agregue una declaración de devolución a la instrucción Finalmente del código anterior
static int intc () {int x = 0; try {x = 1; return x;} finalmente {x = 3; return x;}}Código tres:
static int intc () {int x = 0; try {x = 1; return x;} finalmente {x = 3; return 0;}} Entonces, ¿cuáles son los resultados de ejecución de estos tres métodos?
Código 1: retorno 1;
Código 2: retorno 3;
Código 3: devolver 0;
¿Cuál es el principio?
La razón es que cuando una máquina virtual Java ejecuta un método con un valor de retorno, creará un área en la lista de variables locales para almacenar el valor de retorno del método. Al ejecutar la declaración de devolución, leerá el valor de esta área para devolver.
En el Código 1, asigne 1 a la variable x en prueba, y luego copie el valor de la variable x al área donde se almacena el valor de retorno. Finalmente, el área de valor de retorno almacena 1, y uno se devuelve cuando se ejecuta la declaración de devolución.
En el código 2, 1 también se asigna a la variable x, y luego el valor de x se copia al área donde se almacena el valor de retorno. En este momento, el valor del área donde el valor de retorno es 1, y luego salta a la declaración finalmente. En este momento, se asigna 3 a la variable local x, y luego copie el valor de x al área donde se almacena el valor de retorno, y finalmente ejecuta la instrucción de retorno. El valor en la lectura del área devuelta es 3.
En el Código Tres, las declaraciones ejecutadas en Try son las mismas. Después de saltar a la declaración Finalmente, se asigna 3 a la variable local, luego se asigna 0 al área donde se almacena el valor de retorno y finalmente se ejecuta la declaración de retorno. El valor en la lectura del área devuelta es 0, por lo que se devuelve 0.