Artículos
Java

Finalizar un objeto en Java

04/Mar/2011

Cuando un objeto ya no está en uso por el programa es eliminado de memoria por el garbage collector. Si bien, antes de ser eliminado de la memoria, el garbage collector finaliza el objeto Java. Es decir, ejecuta el método finalize().

Y es que el método finalize() nos permite ejecutar las acciones pertinentes sobre el objeto antes de que sea totalmente eliminado. Por ejemplo, podemos pensar en casos como gestión de ficheros o bases de datos, en los cuales podremos cerrar las conexiones sobre dichos recursos.

La definición del método finalize() tiene la siguiente estructura:

protected void finalize() throws Throwable{
  System.out.println("Finalizando el Objeto");
  super.finalize();
}

Al incluir el método finalize() sobre un objeto estaremos reescribiendo el método finalize() por defecto que viene en la clase Object. Mediante la sentencia super.finalize() estamos ejecutando el método finalize() de las clases padre.

Aunque los métodos finalize() se ejecutarán cuando pase el garbage collector, existe la posibilidad de sugerir a la máquina virtual java (jvm) que se ejecute el finalize de los métodos. Esto lo conseguiremos ejecutando el método runFinalization() de la clase System.

El método System.runFinalization() solo es una sugerencia. No implica una ejecución directa de los métodos finalize().

El código de ejecución del System.runFinalization() sería el siguiente:

public static void main(String[] args) {	
  FinalizarUnObjeto fuo = new FinalizarUnObjeto();
  System.out.println(fuo.toString());
  fuo = null;
  System.runFinalization();				
}

Vídeos sobre Java

Disfruta también de nuestros artículos sobre Java en formato vídeo. Aprovecha y suscribete a nuestro canal.

Test Java

¿Te atreves a probar tus habilidades y conocimiento en Java con nuestro test?

Test Java
Suscribir
Notificar de
guest
7 Comentarios
Recientes
Anteriores Más votados
Opiniones integradas
Ver todos los comentarios