Otok izolacije na Javi

Otok izolacije na Javi

V Javi za uničenje objektov poskrbi zbiralec smeti modul in objekti, ki se nanje ne sklicujejo, so primerni za zbiranje smeti. Garbage Collector je sposoben prepoznati to vrsto predmeta. Zdaj pa se pogovorimo o tem, kaj natanko pomeni Otok izolacije, kot sledi:

  • Objekt 1 se sklicuje na Objekt 2 in Objekt 2 se sklicuje na Objekt 1. Noben drug objekt se ne sklicuje niti na Objekt 1 niti na Objekt 2. To je otok izolacije.
  • V bistvu je otok izolacije skupina objektov, ki se sklicujejo drug na drugega, vendar se nanje ne sklicuje noben aktivni objekt v aplikaciji. Strogo gledano je tudi en sam nereferenciran objekt otok izolacije.

primer:

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

Izhod:



Otok izolacije na Javi

Izhodna razlaga:  

  • Pred uničenjem objekta Garbage Collector za ta objekt največ enkrat pokliče metodo finalize. Ker je metoda finalize() v zgornjem primeru dvakrat poklicana, je to zato, ker sta dva predmeta primerna za zbiranje smeti. To je zato, ker po izvedbi t2=null nimamo nobenih zunanjih referenc na objekte t1 in t2.
  • Vse, kar imamo, so samo notranje reference (ki so v spremenljivki primerka i razreda Test) drug na drugega. Nikakor ne moremo poklicati spremenljivke primerka obeh predmetov. Nobenega od predmetov torej ni mogoče ponovno poklicati do ' t2.i  =  t1 '
Otok izolacije na Javi
  • Oba objekta imata zunanje reference t1 in t2.
  • t1 = nič: Oba objekta je mogoče doseči prek t2.i oziroma t2. t2 = nič: Ni možnosti, da bi dosegli katerega od predmetov. 
     

Zdaj sta oba objekta primerna za zbiranje smeti kot nikakor jih ne moremo poklicati . To je popularno znano kot Otok izolacije.


Top Članki

Kategorija

Zanimivi Članki