portada-principiantes-java-mini-12

Montón y colector de basura – Java para principiantes 12

Montón y colector de basura: gestión automática de la memoria

Montón y colector de basura - Java para principiantes 12

Montón y colector de basura – Java para principiantes 12

En esta ocasión trataremos de explicar dos de los principales elementos de gestión de memoria en Java, llamados montón y colector de basura.

Todos los lenguajes de programación utilizan la memoria RAM que posee nuestro dispositivo para funcionar. Esto es algo obvio y evidente. Algo menos obvio es que si dicha memoria se utiliza mal, puede agotarse y el programa puede quedarse sin recursos.

El principal problema es que se pueden dejar cargados en memoria elementos que ya no se necesiten durante la ejecución. A esto se le suele llamar fuga de memoria y hace que nuestro programa sea menos eficiente. Si existen demasiadas fugas de memoria, podemos quedarnos sin espacio para seguir ejecutando el programa.

Pero volvamos al montón y al colector de basura. El montón es el lugar en el que “existen” los objetos que creamos con Java.

Por otro lado, el colector de basura es un sistema automático encargado de eliminar todos aquellos objetos que no están en uso.

¿Cómo puede saber el colector de basura si el objeto está en uso? Normalmente, en otros lenguajes tendríamos que eliminar a mano cada objeto que no vayamos a usar más. En cambio, en Java, debemos vigilar las variables.

Cada variable apunta a un objeto que existe en el montón. A veces es posible que varias variables apunten al mismo objeto. En cualquier caso, cuando un objeto no tiene ninguna variable que le apunte, se considera que se ha quedado inalcanzable. Como no existe ninguna otra forma de acceder a los objetos que no sean las variables (a diferencia de otros lenguajes donde podemos usar punteros de memoria), al perder un objeto la variable también ha perdido su utilidad.

Cuando el colector de basura detecta que existen objetos sin variable que les apunte, hace un barrido y los borra del montón. De esta manera se previenen las fugas de memoria. Además, sabiendo como funciona este sistema, podemos ayudar al colector de basura eliminando las variables hacia objetos que no vayamos a necesitar más (asignándolas a null).

¿Te ha gustado? ¡Colabora en Patreon!

Leave a Reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *