
Java proporciona un concepto de recolección de basura para hacer que la memoria sea más eficiente. El término basura significa objetos sin referencia, mientras que la recolección de basura se refiere a un proceso que recupera automáticamente la memoria que no se usa en tiempo de ejecución. Las funciones free() y delete() se utilizan en el lenguaje C y en el lenguaje C++, respectivamente, para lograr la recolección de basura, pero en Java se realiza automáticamente y, por lo tanto, Java ofrece una mejor gestión de la memoria.
Este artículo presenta los siguientes aspectos de la recolección de elementos no utilizados de Java:
- ¿Qué es la recolección de basura de Java?
- Beneficios de la recolección de basura de Java
- Cómo crear un objeto sin referencia
- método finalize() en la recolección de basura
- Método System.gc() en la recolección de basura
- Ejemplos de recolección de basura de Java
Así que ¡comencemos!
¿Qué es la recolección de basura en Java?
La destrucción de un objeto «que ya no se usa» se puede hacer con la ayuda de la recolección de basura. Ninguna referencia a un objeto significa que ese objeto no necesita ser persistente y, por lo tanto, la memoria ocupada/ocupada por ese objeto se libera. El fenómeno de la liberación automática de memoria se denomina recolección de basura en Java.
Beneficios de la recolección de basura de Java
Java Garbage Collection ofrece varios beneficios, algunos de los cuales se enumeran a continuación:
- Eliminación automática de objetos innecesarios/no utilizados es uno de los principales beneficios de Java Garbage Collection.
- La recolección de basura de Java hace almacenamiento eficiente ya que borra los objetos no referenciados de la memoria automáticamente.
Cómo crear un objeto sin referencia
Los objetos a los que no se hace referencia (ninguna parte del programa apunta a este objeto) se pueden recuperar mediante la recolección de elementos no utilizados. Hay tres formas de acceder a los objetos no referenciados que se enumeran a continuación:
Asignar una referencia nula
La primera forma de hacer que los objetos no estén referenciados es asignar la referencia nula al objeto.
horas de estudiante = Nuevo estudiante universitario();
defecto = cero;
Ahora std está disponible para la recolección de basura.
Asignar una referencia a otra
Otra forma de lograr la recolección de basura es asignar una referencia a otra referencia. Por ejemplo:
estudiante std1 = Nuevo estudiante universitario();
estudiante std2 = Nuevo estudiante universitario();
std1 = hr2;
Aquí std1 es adecuado para la recolección de basura.
objetos anónimos
La tercera forma de romper la referencia a los objetos es usar el objeto anónimo.
Llamada directa al constructor.
método finalize() en la recolección de basura
Es un método de la clase de objeto que se puede llamar/invocar cada vez antes de que el objeto se recopile como basura y el propósito del método finalize() es realizar un procesamiento de limpieza.
Método System.gc()
Una función que se puede usar para invocar/invocar al recolector de elementos no utilizados 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, asignamos la referencia nula al objeto para que sea apto para la recolección de elementos no utilizados.
estudiante universitario(){
sistema.fuera de.imprimir(«objeto creado»);
}
protegido Vacío graduarse(){
sistema.fuera de.imprimir(«objeto destruido»);
}
}
en público Clase GarbageCollectionEjemplo {
en público estático Vacío principalmente(línea[] argumentos) {
horas de estudiante = Nuevo estudiante universitario();
defecto = cero;
sistema.contra();
}
}
Anulamos el método Finalize de la clase de objeto para el procesamiento de limpieza, luego usamos la función System.gc(), que le dice a la JVM que llame al recolector de basura, destruyendo así el objeto:
La salida autentica que la recolección de elementos no utilizados está funcionando.
De manera similar, las otras dos formas se pueden usar para desreferenciar los objetos, es decir, el objeto anónimo, y asignar una referencia a otra.
Conclusión
En Java, el recolector de basura busca objetos innecesarios/no utilizados y los elimina de la memoria. Los objetos se pueden desreferenciar de tres maneras diferentes, p. B. asignando una referencia nula, asignando una referencia a otra y utilizando el objeto anónimo. El método finalize() se llama justo antes de que el objeto se recolecte como basura cada vez, mientras que System.gc() ejecuta el recolector de basura y se puede llamar para el procesamiento de limpieza. Este artículo proporciona una descripción general detallada de la recolección de elementos no utilizados de Java.