logo

Insula Izolării din Java

În Java, distrugerea obiectelor este îngrijită de colector de gunoi modul și obiectele care nu au nicio referință la acestea sunt eligibile pentru colectarea gunoiului. Garbage Collector este capabil să identifice acest tip de obiect. Acum haideți să discutăm despre ce înseamnă exact Insula Izolării, după cum urmează:

  • Obiectul 1 face referire la Obiectul 2 și Obiectul 2 face referire la Obiectul 1. Nici Obiectul 1, nici Obiectul 2 nu este referit de niciun alt obiect. Asta e o insulă a izolării.
  • Practic, o insulă de izolare este un grup de obiecte care se referă unul la celălalt, dar nu sunt referite de niciun obiect activ din aplicație. Strict vorbind, chiar și un singur obiect fără referință este și o insulă de izolare.

Exemplu:



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');  } } 

Ieșire:

ce este hashset java
Insula Izolării din Java

Ieșire Explicație:  

  • Înainte de a distruge un obiect, Garbage Collector apelează metoda finalize cel mult o dată pe acel obiect. Pentru că metoda finalize() este apelată de două ori în exemplul de mai sus, deoarece două obiecte sunt eligibile pentru colectarea gunoiului. Acest lucru se datorează faptului că nu avem referințe externe la obiectele t1 și t2 după executarea t2=null.
  • Tot ceea ce avem sunt doar referințe interne (care este, de exemplu, variabila i din clasa Test) unul la celălalt. Nu există nicio modalitate de a numi variabila de instanță a ambelor obiecte. Deci, niciunul dintre obiecte nu poate fi apelat din nou până când ' t2.i  =  t1 '
Insula Izolării din Java
  • Ambele obiecte au referințe externe t1 și t2.
  • t1 = zero:Ambele obiecte pot fi atinse prin t2.i și respectiv t2.t2 = nul:Nu există nicio modalitate de a ajunge la niciun obiect. 
     

Acum ambele obiecte sunt eligibile pentru colectarea gunoiului ca nu avem cum să le numim . Acest lucru este cunoscut în mod popular ca Insula Izolării.



concatenare de șiruri java