En Java, ¿qué propósito hacen las palabras clave `final`,` finalmente` y `finalize` cumpliendo?

StackOverflow https://stackoverflow.com/questions/7814688

  •  26-10-2019
  •  | 
  •  

Pregunta

En Java, ¿qué propósito hacen las palabras clave? final, finally y finalize ¿realizar?

¿Fue útil?

Solución

final

final se puede usar para marcar una variable "inmutable"

private final String name = "foo";  //the reference name can never change

final También puede hacer que un método no sea "inexistible"

public final String toString() {  return "NULL"; }

final También puede hacer que una clase no sea "heredable". es decir, la clase no se puede subclasificar.

public final class finalClass {...}
public class classNotAllowed extends finalClass {...} // Not allowed

finalmente

finally se usa en una declaración de prueba/captura para Ejecutar el código "siempre"

lock.lock();
try {
  //do stuff
} catch (SomeException se) {
  //handle se
} finally {
  lock.unlock(); //always executed, even if Exception or Error or se
}

Java 7 tiene un Nuevo intento con la declaración de recursos que puede usar para cerrar automáticamente recursos que implementan explícita o implícitamente Java.io.Closable o java.lang.autocloso

finalizar

finalize se llama cuando un objeto es basura recolectada. Raramente necesitas anularlo. Un ejemplo:

protected void finalize() {
  //free resources (e.g. unallocate memory)
  super.finalize();
}

Otros consejos

  • "Final" denota que algo no se puede cambiar. Por lo general, desea usar esto en variables estáticas que tengan el mismo valor a lo largo de la vida útil de su programa.
  • "Finalmente" se usa junto con un bloque Try/Catch. Cualquier cosa dentro de la cláusula "Finalmente" se ejecutará independientemente de si el código en el bloque 'Prueba' arroja una excepción o no.
  • El JVM llama a "finalizar" antes de que un objeto esté a punto de ser recolectado de basura.

La palabra clave final se usa para declarar constantes.

final int FILE_TYPE = 3;

La palabra clave finalmente se usa en una instrucción Prueba para especificar un bloque de código para ejecutar independientemente de las excepciones lanzadas.

try
{
  //stuff
}
catch(Exception e)
{
  //do stuff
}
finally
{
  //this is always run
}

Y finalmente (jaja), finalizar, no estoy completamente seguro de que sea una palabra clave, pero hay un finalizar() función en la clase de objeto.

http://allu.wordpress.com/2006/11/08/difference-between-final-finally-and-finalize/

Final - Declaración constante.

Finalmente, el bloque finalmente siempre se ejecuta cuando el bloque de try sale, excepto la llamada system.exit (0). Esto asegura que el bloque finalmente se ejecute incluso si se produce una excepción inesperada. Pero finalmente es útil para más que un solo manejo de excepciones: le permite al programador evitar que el código de limpieza se pase por alto accidentalmente por una devolución, continuar o romper. Poner código de limpieza en un bloque finalmente siempre es una buena práctica, incluso cuando no se anticipan excepciones.

Finalize () - El método ayuda en la recolección de basura. El recolector de basura descarte un método que se invoca antes de que el recolector de basura lo descarte, lo que le permite limpiar su estado. No debe usarse para liberar recursos no memoria como manijas de archivos, sockets, conexiones de bases de datos, etc. porque Java solo tiene un número finito de estos recursos y usted no sabe cuándo la recolección de basura se activará para liberar estos recursos no memoria. A través del método Finalize ().

¿Intentaste buscar en Google y necesitas aclaraciones para una explicación?

final: Final es una palabra clave. La variable declarada como final debe inicializarse solo una vez y no se puede cambiar. Las clases de Java declaradas como finales no se pueden extender. Los métodos declarados como finales no pueden ser anulados.

finalmente: Finalmente es un bloque. El bloque Finalmente siempre se ejecuta cuando el bloque de try sale. Esto asegura que el bloque finalmente se ejecute incluso si se produce una excepción inesperada. Pero finalmente es útil para más que un solo manejo de excepciones: permite que el programador evite que el código de limpieza pase por alto accidentalmente por una devolución, continúe o se rompa. Poner código de limpieza en un bloque finalmente siempre es una buena práctica, incluso cuando no se anticipan excepciones.

finalizar: Finalizar es un método. Antes de que un objeto se recolecte la basura, el sistema de tiempo de ejecución llama a su método finalize (). Puede escribir el código de lanzamiento de recursos del sistema en el método Finalize () antes de recolectar la basura.

1. Final• Final se utiliza para aplicar restricciones sobre clase, método y variable. • La clase final no se puede heredar, el método final no se puede anular y el valor variable final no se puede cambiar. • Las variables finales se inicializan en el momento de la creación, excepto en el caso de la variable final en blanco que se inicializa en el constructor. • Final es una palabra clave.

2. Finalmente• Finalmente se usa para el manejo de excepciones junto con el intento y la captura. • Se ejecutará si se maneja la excepción o no. • Este bloque se utiliza para cerrar los recursos como la conexión de la base de datos, los recursos de E/S. • Finalmente es un bloque.

3. Finalizar• Finalizar se llama por el hilo de recolección de basura justo antes de recolectar objetos elegibles para realizar el procesamiento de limpieza. • Esta es la última oportunidad para que Object realice cualquier limpieza, pero dado que no está garantizado que se llame Finalize (), su mala práctica para mantener el recurso hasta finalizar la llamada. • Finalizar es un método.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top