Gráfica comparativa
Bases para la comparación | Final | Finalmente | Finalizar |
---|---|---|---|
BASIC | Final es una "palabra clave" y "modificador de acceso" en Java. | Finalmente hay un "bloque" en Java. | Finalizar es un "método" en Java. |
Aplicable | Final es una palabra clave aplicable a las clases, variables y métodos. | Finalmente, es un bloque que siempre está asociado con el bloque try and catch. | finalize () es un método aplicable a los objetos. |
Trabajando | (1) La variable final se vuelve constante y no se puede reasignar. (2) La clase secundaria no puede anular un método final. (3) La clase final no puede ser extendida. | Un bloque "finalmente", limpia los recursos utilizados en el bloque "intentar". | El método Finalize realiza actividades de limpieza relacionadas con el objeto antes de su destrucción. |
Ejecución | El método final se ejecuta a su llamada. | El bloque "Finalmente" se ejecuta justo después de la ejecución del bloque "try-catch". | El método finalize () se ejecuta justo antes de la destrucción del objeto. |
Definición de final
"Final" es una palabra clave en Java. Es un modificador de acceso. La palabra clave "final" es aplicable a las clases, métodos y variables. Veamos cómo funciona con cada uno de ellos.
Variable final
- Cuando se aplica una palabra clave final a la variable, no se puede modificar más.
- Una variable final debe ser inicializada cuando se declara.
- En una convención de codificación común, las variables finales se declaran en MAYÚSCULAS.
- La variable final no ocupa la memoria por instancia.
final int FILE_OPEN = 2;
Métodos finales
- Cuando un método en clase se declara como final, no puede ser reemplazado por su subclase.
- Los pequeños métodos que se declaran definitivos se pueden hacer "en línea" por el compilador, lo que reducirá la sobrecarga de llamadas a funciones y aumentará las mejoras de rendimiento.
- Los métodos anulados llaman, se resuelven dinámicamente, pero cuando un método se declara como final, no se puede anular. Por lo tanto, la función llamada puede resolverse en tiempo de compilación.
clase A {método de vacío final () {System.out.println ("Este es un método final."); }} la clase B se extiende A {void meth () {// Clas B no puede heredar el método de la clase A. System.out.println ("No anula"); }}
Clase final
- Cuando una clase se declara como final, entonces no puede ser heredada por ninguna subclase.
- Declarar una clase como final declarará automáticamente todos sus métodos como final.
- No se puede declarar una clase como "abstracta" y "final".
clase final A {// ...} clase B se extiende A {// Clase B no puede heredar clase A // ...}
Definición de por fin
- En Java, "finalmente" es un bloque que siempre está asociado con el bloque try / catch.
- El bloque "finally" se ejecuta después del bloque try / catch y antes del código que sigue al bloque try / catch.
- El bloque "finalmente" se ejecutará si la excepción se lanza o no.
- Cuando se lanza una excepción, y ningún bloque catch coincide con la excepción, incluso entonces, se ejecuta el bloque "finally".
- Cuando un método regresa a la persona que llama desde dentro del bloque try / catch a través de una excepción no detectada o una declaración de retorno explícita, el bloque "finalmente" se ejecuta justo antes de que el método regrese al llamante.
- El bloque "finalmente" se utiliza para limpiar los recursos o liberar la memoria utilizada en el bloque "intentar".
- El bloque "finalmente" es opcional, pero es una buena práctica escribir finalmente el bloque después del bloque try / catch.
class FinallyExample {// Este método arroja una excepción al método. static void procA () {try {System.out.println ("inside procA"); lanzar nueva RuntimeException ("demo"); } finalmente {System.out.println ("procA's finalmente"); }} // Regresa desde dentro de un bloque try. static void procB () {try {System.out.println ("inside procB"); regreso; } finalmente {System.out.println ("procB's finally"); }} // Ejecutar un bloque try normalmente. static void procC () {try {System.out.println ("inside procC"); } finalmente {System.out.println ("procC's finally"); }} public static void main (String args []) {try {procA (); } catch (Exception e) {System.out.println ("Exception catch"); } procB (); procC (); }} // salida dentro de procA procA's finalmente Excepción atrapada dentro de procB procB's finalmente dentro de procC procC's finalmente
Definición de Finalizar
- Finalizar es un método en una clase de objeto.
- Un objeto puede contener algunos recursos que no son Java, como el identificador de archivo; entonces debe ser liberado antes de ser destruido.
- Este método es invocado por el recolector de basura antes de que destruya el objeto por completo.
- Este método realiza actividades de limpieza para el objeto antes de que se destruya.
La forma general del método finalize () es la siguiente.
nulo protegido finalizado () {// código de finalización aquí}
El método de finalización se declara protegido para que no se pueda acceder desde fuera de la clase.
Este método siempre se llama antes de la recolección de basura.
Diferencias clave entre final, final y finalizar
- La palabra clave final es un modificador de acceso, finalmente es un bloque y finalizar es un método.
- La palabra clave final es aplicable a las clases, variables y métodos de las clases; finalmente, es un bloque asociado con el bloque try catch que se usa para manejar las excepciones. Finalizar es un método que opera solo en objetos.
- Una vez que la variable declarada como final se vuelve constante y no se puede volver a asignar, un método declarado como final no puede ser anulado, y la clase declarada como final nunca puede ser heredada. El bloque finally se utiliza para limpiar los recursos utilizados por el bloque try and catch. El método de finalización se utiliza para limpiar los recursos utilizados por un objeto antes de que se destruya el objeto.
Conclusión:
Final, finalmente y finalize tiene un efecto diferente cuando se aplica en un método.