TutorJava Nivel Básico

Muchos otros lenguajes orientados a objetos necesitan que se siga la pista de los objetos que se han creado y luego se destruyan cuando no se necesiten. Escribir c�digo para manejar la memoria de esta es forma es aburrido y propenso a errores.

Java permite ahorrarse esto, permiti�ndo crear tantos objetos como se quiera (s�lo limitados por los que el sistema pueda manejar) pero nunca tienen que ser destruidos. El entorno de ejecuci�n Java borra los objetos cuando determina que no se van autilizar m�s. Este proceso es conocido como recolecci�n de basura.

Un objeto es elegible para la recolecci�n de basura cuando no existen m�s referencias a ese objeto. Las referencias que se mantienen en una variable desaparecen de forma natural cuando la variable sale de su �mbito. O cuando se borra expl�citamente un objeto referencia mediante la selecci�n de un valor cuyo tipo de dato es una referencia a null.

.�Recolector de Basura

El entorno de ejecuci�n de Java tiene un recolector de basura que peri�dicamente libera la memoria ocupada por los objetos que no se van a necesitar m�s.

El recolector de basura de Java es un barredor de marcas que escanea din�micamente la memoria de Java buscando objetos, marcando aquellos que han sido referenciados. Despu�s de investigar todos los posibles paths de los objetos, los que no est�n marcados (esto es, no han sido referenciados) se les conoce como basura y son eliminados.

El colector de basura funciona en un thread (hilo) de baja prioridad y funciona tanto s�ncrona como as�ncronamente dependiendo de la situaci�n y del sistema en el que se est� ejecutando el entorno Java.

El recolector de basura se ejecuta s�ncronamente cuando el sistema funciona fuera de memoria o en respuesta a una petici�n de un programa Java. Un programa Java le puede pedir al recolector de basura que se ejecute en cualquier momento mediante una llamada a System.gc().

Nota: Pedir que se ejecute el recolector de basura no garantiza que los objetos sean recolectados.

En sistemas que permiten que el entorno de ejecuci�n Java note cuando un thread a empezado a interrumpir a otro thread (como Windows 95/NT), el recolector de basura de Java funciona as�ncromamente cuando el sistema est� ocupado. Tan pronto como otro thread se vuelva activo, se pedira al recolector de basura que obtenga un estado consistente y termine.

.�Finalizaci�n

Antes de que un objeto sea recolectado, el recolector de basura le da una oportunidad para limpiarse �l mismo mediante la llamada al m�todo finalize() del propio objeto. Este proceso es conocido como finalizaci�n.

Durante la finalizaci�n de un objeto se podr�an liberar los recursos del sistema como son los ficheros, etc. y liberar referencias en otros objetos para hacerse elegible por la recolecci�n de basura.

El m�todo finalize() es un miembro de la clase java.lang.Object. Una clase debe sobreescribir el m�todo finalize() para realizar cualquier finalizaci�n necesaria para los objetos de ese tipo.

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP