En Java no hay destructores como en C++. El sistema se ocupa automáticamente de liberar la
memoria de los objetos que ya han perdido la referencia. esto es. objetos que ya no tienen ningún
nombre que permita acceder a ellos, por ejemplo por haber llegado al final del bloque en el que
habían sido definidos, porque a la referencia se le ha asignado el valor nuil o porque a la referencia
se le ha asignado la dirección de otro objeto. A esta característica de Java se le llama garbage
collection (recogida de basura).
En Java es normal que varias variables de tipo referencia apunten al mismo objeto. Java lleva
internamente un contador de cuántas referencias hay sobre cada objeto. El objeto podrá ser borrado
cuando el número de referencias sea cero. Como ya se ha dicho, una forma de hacer que un objeto
quede sin referencia es cambiar ésta a nuil, haciendo por ejemplo:
ObjetoRef = nuil;
En Java no se sabe exactamente cuándo se va a activar el garbage collector. Si no falta
memoria es posible que no se llegue a activar en ningún momento. No es pues conveniente confiar
en él para la realización de otras tareas más críticas.
Se puede llamar explícitamente al garbage collector con el método System.gc(). aunque esto
es considerado por el sistema sólo como una "sugerencia" a la JVM.
No hay comentarios:
Publicar un comentario