Recolección de basura en Java | Explicado

Recolección de basura en Java | Explicado

Java proporciona un concepto de recolección de basura para que la memoria sea más eficiente. El término basura significa objetos no referenciados, mientras que la recolección de basura se refiere a un proceso que reclama la memoria de tiempo de ejecución no utilizada automáticamente. Las funciones Free () y Delete () se usan en el lenguaje C y el idioma C ++, respectivamente, para lograr la recolección de basura, sin embargo, en Java, se realiza automáticamente y, por lo tanto, Java proporciona una mejor gestión de la memoria.

Este artículo presenta los siguientes aspectos de la recolección de basura de Java:

  1. ¿Qué es la recolección de basura de Java??
  2. Ventajas de la recolección de basura de Java
  3. Cómo objeto no referenciado
  4. Método finalizar () en la recolección de basura
  5. Sistema.Método GC () en la recolección de basura
  6. Ejemplos de recolección de basura de Java

Entonces, comencemos!

¿Qué es la recolección de basura en Java?

La destrucción de un objeto "fuera de uso" se puede hacer con la ayuda de la recolección de basura. Ninguna referencia a un objeto significa que no hay necesidad de mantener ese objeto y, por lo tanto, la memoria ocupada/tomada por ese objeto se liberará. El fenómeno de liberar automáticamente la memoria se llama recolección de basura en Java.

Ventajas de la recolección de basura de Java

La recolección de basura Java proporciona múltiples ventajas, algunas de ellas se enumeran a continuación:

  • Deleción automática de objetos innecesarios/no utilizados es uno de los beneficios más importantes de la recolección de basura de Java.
  • La recolección de basura de Java hace memoria eficiente ya que elimina los objetos no referenciados de la memoria automáticamente.

Cómo objeto no referenciado

Los objetos que no están referenciados (ninguna parte del programa apunta a ese objeto) pueden ser reclamados mediante recolección de basura. Hay tres formas de objetos no referenciados que se enumeran a continuación:

  • Asignar una referencia nula
  • Asigne una referencia a otra
  • Objeto anónimo

Asignar una referencia nula

La primera forma de no referenciar los objetos es asignar la referencia nula al objeto.

Estudiante STD = nuevo estudiante ();
std = nulo;

Ahora, STD está disponible para la recolección de basura.

Asignar una referencia a otros

Otra forma de lograr la recolección de basura es asignando una referencia a otra. Por ejemplo:

Student STD1 = New Student ();
Student std2 = new Student ();
std1 = std2;

Aquí, STD1 es elegible para la recolección de basura.

Objetos anónimos

La tercera forma de no referencia a los objetos es el uso del objeto anónimo.

Estudiante nuevo();

Llamando directamente al constructor.

Método finalizar () en la recolección de basura

Es un método de la clase de objeto que se puede invocar/llamarse cada vez antes de que el objeto se recolecte la basura y el propósito del método finalizar () es realizar el procesamiento de limpieza.

Sistema.Método GC ()

Una función que se puede usar para invocar/llamar al recolector de basura para realizar el procesamiento de limpieza.

Ejemplos de recolección de basura de Java

Consideremos un ejemplo práctico para una comprensión profunda de los conceptos:

Ejemplo

En este ejemplo, asignaremos la referencia nula al objeto para que sea elegible para la recolección de basura.

Estudiante de clase
Alumno()
Sistema.afuera.println ("objeto creado");

Void protegido finalize ()
Sistema.afuera.println ("objeto destruido");


clase pública GarbageCollectionExample
public static void main (string [] args)
Estudiante STD = nuevo estudiante ();
std = nulo;
Sistema.gc ();

Anulamos el método de finalización de la clase de objeto para el procesamiento de limpieza y luego utilizamos el sistema.Función GC () que solicitará al JVM que llame al recolector de basura y, por lo tanto, destruye el objeto:

La salida autentica el funcionamiento de la recolección de basura.

Del mismo modo, las otras dos maneras se pueden usar para no referirse los objetos i.mi. objeto anónimo y asignar una referencia a otro.

Conclusión

En Java, el recolector de basura busca los objetos innecesarios/no utilizados y los elimina de la memoria. Los objetos se pueden no referencias de tres maneras diferentes, como asignar referencia nula, asignar una referencia a otra y usar el objeto anónimo. El método finalize () se invoca/se llama cada vez justo antes de que el objeto se recolecte la basura mientras el sistema.GC () ejecuta el recolector de basura y se puede invocar para el procesamiento de limpieza. Este artículo presenta una descripción detallada de la recolección de basura de Java.