En Java, la destrucción de objetos está a cargo del módulo Recolector de basura y los objetos que no tienen ninguna referencia a ellos son elegibles para la recolección de basura. Garbage Collector es capaz de identificar este tipo de objetos. Ahora analicemos qué significa exactamente Island of Isolation de la siguiente manera:
- El objeto 1 hace referencia al objeto 2 y el objeto 2 hace referencia al objeto 1. Ningún otro objeto hace referencia al objeto 1 ni al objeto 2. Esa es una isla de aislamiento.
- Básicamente, una isla de aislamiento es un grupo de objetos que se referencian entre sí pero que ningún objeto activo de la aplicación hace referencia a ellos. Estrictamente hablando, incluso un solo objeto sin referencia es también una isla de aislamiento.
Ejemplo:
Java
// Java Program to Illustrate Island of Isolation // Main class public class GFG { GFG i; // Method 1 // Main driver method public static void main(String[] args) { // Creating object of class inside main() method GFG t1 = new GFG(); GFG t2 = new GFG(); // Object of t1 gets a copy of t2 t1.i = t2; // Object of t2 gets a copy of t1 t2.i = t1; // Till now no object eligible // for garbage collection t1 = null; // Now two objects are eligible for // garbage collection t2 = null; // Calling garbage collector System.gc(); } // Method 2 // overriding finalize() Method @Override protected void finalize() throws Throwable { // Print statement System.out.println("Finalize method called"); } }
Producción:
Salida Explicación:
- Antes de destruir un objeto, Garbage Collector llama al método finalize como máximo una vez en ese objeto. Esto se debe a que el método finalize() se llama dos veces en el ejemplo anterior porque dos objetos son elegibles para la recolección de elementos no utilizados. Esto se debe a que no tenemos ninguna referencia externa a los objetos t1 y t2 después de ejecutar t2=null.
- Todo lo que tenemos son solo referencias internas (que en la instancia es la variable i de la clase Prueba) entre sí. No hay forma de que podamos llamar a la variable de instancia de ambos objetos. Entonces, ninguno de los objetos puede ser llamado nuevamente hasta ‘ t2.i = t1 ‘
- Ambos objetos tienen referencias externas t1 y t2.
- t1 = nulo: ambos objetos se pueden alcanzar a través de t2.i y t2 respectivamente.
- t2 = nulo: No hay forma de alcanzar ninguno de los objetos.
Ahora, ambos objetos son elegibles para la recolección de basura ya que no hay forma de que podamos llamarlos . Esto se conoce popularmente como Isla del Aislamiento.
Este artículo es una contribución de Gaurav Miglani . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks. Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA