(1) Final: Modificador (palabra clave). Si una clase se declara final, significa que no puede derivar nuevas subclases y no puede ser heredado como clase principal. Por lo tanto, una clase no puede declararse abstracta y final. Declarar variables o métodos como final puede garantizar que no se cambien durante el uso. Las variables declaradas como finales deben tener un valor inicial cuando se declaran, y solo se pueden leer en referencias futuras y no pueden modificarse. Los métodos declarados solo se pueden usar solo y no se pueden sobrecargar.
(2) Finalmente: proporciona finalmente bloques para realizar cualquier operación de limpieza durante el manejo de excepciones. Si se lanza una excepción, se ejecutará la cláusula de captura coincidente y el control ingresará al bloque Finalmente (si corresponde).
(3) Finalizar: Nombre del método. La tecnología Java permite el uso del método Finalize () para hacer la limpieza necesaria antes de que el recolector de basura elimine los objetos de la memoria. El recolector de basura llama a este método al determinar que no se hace referencia al objeto. Se define en la clase de objeto, por lo que todas las clases lo heredan. La subclase anula el método Finalize () para organizar los recursos del sistema o realizar otros trabajos de limpieza. El método Finalize () se llama al objeto antes de que el recolector de basura lo elimine.
Lo anterior puede ser un poco vago, discutamos más en profundidad
1. Diferentes propiedades
(1) final es la palabra clave;
(2) finalizar () es un método;
(3) Finalmente es una bandera de bloque, utilizada en las declaraciones de prueba;
Segundo, función
(1) Final es una palabra clave utilizada para identificar constantes, y las palabras clave identificadas por final se almacenan en el grupo constante (el uso específico de las constantes finales se introducirá a continuación);
(2) El método Finalize () se define en el objeto. Se usa para llamar al JVM para recoger el objeto cuando el objeto "desaparece", similar al destructor en C ++; Cuando definió el usuario, se utiliza para liberar los recursos ocupados por el objeto (como realizar operaciones I/0);
(3) Finalmente {} se usa para identificar el bloque de código y cooperar con Try {}. Independientemente de si el código en la prueba se ha ejecutado o no (aquí se refiere a una excepción), el programa en el bloque de código definitivamente se llevará a cabo;
3. Explicación detallada
1 Defina variables
1.1 Cuando la final define una variable de tipo básica, se debe requerir la inicialización de la variable en otros lugares al declarar o en el constructor. Las constantes definidas por esta palabra clave no se pueden cambiar excepto la etapa de inicialización.
1.2 Final define una referencia a un objeto, y la inicialización de la referencia es consistente con los requisitos al definir una constante; Se puede cambiar el contenido del objeto definido por la palabra clave, pero la dirección apuntada por la referencia no se puede cambiar;
2 Definir parámetros
Si se pasa la variable definida por este parámetro, el método no puede modificar el contenido del parámetro (error), que es el mismo que las reglas de modificación para definir la variable; El método Java pasa el valor al pasar el tipo básico en el método Java, y el método Java pasa el parámetro para el objeto; <Después de todo, el método pasa el método en Java depende del paso de una "copia": para el tipo básico, primero cree una copia, asigne el valor aprobado para copiar y luego opere en copia; Para el tipo de objeto, primero cree una copia de referencia y asigne la referencia del objeto aprobado para copiar>
Por ejemplo: Método (prueba int -int);
Algunos libros dicen que los parámetros de definición final aquí, especialmente los parámetros del objeto, son muy útiles y no pueden cambiar el contenido del objeto dentro del método. ¡Esta declaración está mal! Resulta que también creo que hay algunas características de programación funcional de esta manera. No puede modificar el contenido del objeto. Aquí aún puede modificar el contenido del objeto.
? ? ¿De qué sirve definir este parámetro? ?
¡La cadena nace para ser definitiva!
3 Método de definición
(1) los métodos definidos utilizando la palabra clave final no pueden ser heredados por subclases;
(2) Permita que el compilador convierta todas las llamadas a este método en comportamiento en línea (en línea), es decir, puede copiar este método directamente en la llamada en lugar de realizar llamadas de método de rutina (guarde los puntos de interrupción, presione la pila), lo que aumentará la eficiencia del programa. Sin embargo, si hay demasiados, esto causará la hinchazón del código y afectará la eficiencia, por lo que este método debe usarse con precaución. .
4 clase de definición
Cualquier clase final no puede ser heredada por nadie, lo que significa que esta clase es una clase de hoja en un árbol de herencia, y esta clase se considera perfecta y no requiere ninguna modificación (en resumen, no se recomienda)