##
ALCANCE DE OBJETOS Y RECICLADO DE MEMORIA

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]