Los objetos tienen un tiempo de vida y consumen recursos durante el mismo. Cuando un objeto no se va a utilizar más, debería liberar el espacio que ocupaba en la memoria de forma que las aplicaciones no la agoten (especialmente las grandes).
En Java, la recolección y liberación de memoria es responsabilidad de un thread llamado automatic garbage collector (recolector automático de basura). Este thread monitoriza el alcance de los objetos y marca los objetos que se han salido de alcance. Veamos un ejemplo:
String s; // no se ha asignado todavia s = new String( "abc" ); // memoria asignada s = "def"; // se ha asignado nueva memoria // (nuevo objeto)
Más adelante veremos en detalle la clase String, pero una breve descripción de lo que hace esto es; crear un objeto String y rellenarlo con los caracteres "abc" y crear otro (nuevo) String y colocarle los caracteres "def".
En esencia se crean dos objetos:
Objeto String "abc" Objeto String "def"
Al final de la tercera sentencia, el primer objeto creado de nombre
s
que contiene "abc" se ha salido de alcance.
No hay forma de acceder a él. Ahora se tiene un nuevo objeto
llamado s
y contiene "def". Es marcado
y eliminado en la siguiente iteración del thread reciclador
de memoria.
|
[Anterior] [Indice] [Siguiente] |