JavaSE llegar a conocer la implementación completa de try, catch, por último, con el retorno de

Aviso: Este artículo es RDCC blogger artículo original, "Garnett Shin Ki", seguimiento CC 4.0 BY-SA acuerdo de derecho de autor, reproduce, por favor adjuntar el enlace de la fuente original y esta declaración.
fuente original: https: //blog.csdn.net/qq_36262896/article/details/79779953


 Antes de comenzar mi blog, voy a citar las palabras de Mashi Bing maestro, profesor de la memoria que domina todos (divertido).

         En general, trate de ejecutar el programa dentro del contenido finalmente realizar dentro de contenido. Si se encuentra con un retorno en el intento o detectarlo, entonces la función después de la finalización de la aplicación de la expresión tras el retorno, que irá al bloque finally de las declaraciones antes del final del cuerpo del método. Pero hay un caso especial, si hay System.exit (0) en el intento que dicha declaración, System.exit (0) es la terminación de la máquina virtual Java JVM, JVM incluso han dejado, por todas partes, por supuesto, también finally no va a ser ejecutado. Consideremos ahora el caso general, tratar, coger, por último, con el retorno de la ejecución.

(A) para analizar el proceso de implementación de la vuelta de asignación de memoria (mi opinión personal)
        marca el retorno al final del método actual es equivalente a un cuerpo. Es un poco como fuera ruptura del ciclo. Si el cuerpo actual es un método que devuelve un valor, entonces se realiza la corriente de retorno para el primer método, asigna un espacio de memoria en la pila, para el tipo de retorno del tipo de función, devolver el valor del valor calculado después de una expresión.

        Si la segunda ejecución de retorno (tal como el interior de la try finalmente volver de nuevo en el retorno), entonces la pieza de los contenidos de la memoria asignados espacio de pila será reemplazado con el nuevo valor calculado de la devolución expresión más tarde.

        Así que cuando el final del método actual con un tipo del mismo, saldrá de la pila en el valor de retorno. Con o sin el valor de retorno se asigna a las otras variables, será reclamado este espacio.

(B) devuelve el valor del tipo discutido

1. El valor de retorno es los tipos de datos básicos.

        En este caso, los datos devueltos no se verán afectados por la declaración que no sea de retorno.

Ejemplos:

        

        De hecho, explicado bien por las vistas de memoria, vuelvo; declaración en la pila es de hecho abrió un nuevo espacio, y luego el valor de i se asigna al nuevo espacio abierto, por lo que una vez finalizada la tarea, el valor de i es cómo el cambio no afecta a la rentabilidad valor.

2. El valor de retorno es un tipo de datos de referencia.

        En este caso, los datos devueltos pueden ser afectados por el retorno comunicado exterior.

Ejemplos:

    

        También es bueno para explicar el punto de vista de la memoria, vuelvo; declaraciones se abrirá un nuevo espacio, el valor de i se asigna al nuevo espacio abierto recientemente abierto. Pero i es un tipo de referencia, si la operación de los puntos objeto i, a continuación, también afectan el valor de retorno, ya que apuntan al mismo espacio de memoria.

Resumen: De hecho, resumió en dos puntos

1: una función para ejecutar el contenido dentro intento, será en el interior del bloque de instrucciones, por último, a menos que haya un método similar intento System.exit ().

2: la función ejecuta un retorno no puede devolver directamente (por ejemplo tratar de atrapar el interior), pero este método se abrirá un tipo de retorno de espacio corporal, el valor de la que se almacena detrás de la devolución de resultado de una expresión, que resultados está cubierta por un segundo retorno (finalmente el interior).

 

Publicados 113 artículos originales · ganado elogios 25 · Vistas a 30000 +

Supongo que te gusta

Origin blog.csdn.net/qq_42006733/article/details/104824913
Recomendado
Clasificación