Final:
Final le permite controlar si sus miembros, métodos o clases pueden sobrescribirse o heredar.
Cuando define una variable en una clase, agregue la palabra clave final ante ella, eso significa que una vez que se inicializa esta variable, no se puede cambiar. , sus referencias ya no se pueden cambiar. Su inicialización puede ser en dos lugares, uno es su definición, y el otro es que en el constructor, uno solo puede elegir uno de los dos.
El siguiente programa simplemente demuestra el uso general de la final:
Prueba de clase pública {final int t = 1;
Otro uso es definir los parámetros en el método como final. . Cuando no necesita cambiar la variable del objeto como parámetro en el método, se declara explícitamente el uso de final, lo que le impedirá modificar y afectar involuntariamente el método de llamadas.
Además, cuando se usa variables de parámetros en el método en la clase interna, esta variable de parámetro debe declararse final antes de que pueda usarse, como se muestra en el siguiente código:
Public Class Test {Void Print (Final String Str) {Class InnerTest {innerTest () {System.out.println (str); {Test Test = New Test ();
Hay dos razones por las cuales el método final declara el método como final. clase heredada de esta clase. El segundo es un mecanismo que permite al compilador convertir todas las llamadas a este método en llamadas en línea (en línea). ., como guardar puntos de interrupción, prensar pilas, etc., esto puede mejorar la eficiencia de su programa. Por lo tanto, debe usar final para definir el método con precaución.
Clase final Cuando usa final en una clase, debe pensar con cuidado, porque una 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 el diseño se ha considerado perfecto sin modificación o extensión. Para los miembros en la clase final, puede definirlo como final o no final. Para los métodos, porque la clase pertenece a Final, naturalmente se vuelven finales. También puede agregar explícitamente una final al método en la clase final, pero esto obviamente no tiene sentido.
Finalmente:
La palabra clave finalmente es la mejor adición al modelo de manejo de excepciones Java. La estructura finalmente permite que el código siempre se ejecute independientemente de si se produce la excepción. Use finalmente para mantener el estado interno de un objeto y para limpiar los recursos no memoria. Sin finalmente, su código será confuso. Por ejemplo, el siguiente código ilustra cómo escribe el código a los recursos gratuitos de no memoria sin usar finalmente:
public void WriteFile (String FilePath, String Filename, String Args) lanza IOException {FileWriter fw = new FileWriter (FilePath + FileName); ()
Este código crea un objeto de escritor de archivos y llama al método de escritura. Antes de salir del método, debe cerrar el objeto FileWriter para evitar las vulnerabilidades de los recursos. Para lograr esta tarea, llamamos a Close AT // 2, que es la última declaración del método. Pero, ¿qué sucede si se produce una excepción en el bloque de try? En este caso, la llamada cercana a // 2 nunca sucede. Por lo tanto, debe atrapar esta excepción e insertar otra llamada para cerrar AT // 1 antes de volver a emitir esta excepción. Esto asegura que el objeto FileWriter esté cerrado antes de salir del método. Escribir código como este es a la vez engorrosa y propensa a errores, pero es esencial sin finalmente. Con finalmente, el código anterior se puede reescribir en el siguiente formulario:
public void WriteFile (String FilePath, String Filen Name, String Args) lanza IOException {FileWriter fw = new FileWriter (FilePath + FileName); fw .close ();
El bloque Finalmente asegura que el método de cierre siempre se ejecute independientemente de si se emite una excepción dentro del bloque Try. Por lo tanto, se asegura que el método de cierre siempre se llame antes de salir del método. De esta manera, puede estar seguro de que el objeto FileWriter está cerrado y que no ha filtrado recursos.
finalizar:
Según la especificación del lenguaje Java, el JVM asegura que este objeto no se pueda apagar antes de llamar a la función finalización, pero el JVM no garantiza que esta función se llame. Además, la especificación también garantiza que la función finalización se ejecute como máximo una vez.
En general, la finalización se utiliza para liberar algunos recursos que no son fáciles de controlar y son muy importantes, como algunas operaciones de E/S y conexiones de datos. El lanzamiento de estos recursos es muy crítico para toda la aplicación. En este caso, los programadores deben administrar principalmente estos recursos a través del programa en sí (incluida la liberación) y complementar el método de liberar los recursos con la función finalización como un suplemento para formar un mecanismo de gestión de seguros dual, en lugar de depender únicamente de finalizar para liberar recursos.
Resumir
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.
Finalmente, se proporciona un bloque final para realizar cualquier operación de compensación cuando se procesa la excepción. Si se lanza una excepción, se ejecutará la cláusula de captura coincidente y el control ingresará al bloque Finalmente (si corresponde).
finalizar - nombre del método. La tecnología Java permite el uso del método Finalize () para realizar el trabajo de limpieza necesario antes de que el recolector de basura despeje 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.