Otok izolacije na Javi

Otok izolacije na Javi

U Javi se za uništavanje objekata brine sakupljač smeća modul i objekti koji nemaju nikakve reference na njih prihvatljivi su za skupljanje smeća. Garbage Collector je sposoban identificirati ovu vrstu objekta. Raspravljajmo sada o tome što točno predstavlja Otok izolacije na sljedeći način:

  • Objekt 1 referira na Objekt 2, a Objekt 2 na Objekt 1. Ni jedan drugi objekt ne referencira niti Objekt 1 niti Objekt 2. To je otok izolacije.
  • U osnovi, otok izolacije je grupa objekata koji referenciraju jedni druge, ali ih ne referencira niti jedan aktivni objekt u aplikaciji. Strogo govoreći, čak je i jedan nereferencirani objekt također otok izolacije.

Primjer:

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

Izlaz:



Otok izolacije na Javi

Objašnjenje izlaza:  

  • Prije uništavanja objekta Garbage Collector poziva metodu finalize najviše jednom na tom objektu. To je zato što je metoda finalize() pozvana dva puta u gornjem primjeru zato što su dva objekta prikladna za sakupljanje smeća. To je zato što nemamo nikakve vanjske reference na t1 i t2 objekte nakon izvršavanja t2=null.
  • Sve što imamo su samo interne reference (koje su u varijabli instance i klase Test) međusobno. Ne postoji način na koji možemo nazvati varijablu instance oba objekta. Dakle, nijedan od objekata ne može se ponovno pozvati do ' t2.i  =  t1 '
Otok izolacije na Javi
  • Oba objekta imaju vanjske reference t1 i t2.
  • t1 = nula: Do oba objekta se može doći putem t2.i odnosno t2. t2 = nula: Nema načina da dođete do bilo kojeg objekta. 
     

Sada su oba objekta prikladna za odvoz smeća nema šanse da ih možemo nazvati . Ovo je popularno poznato kao Otok izolacije.


Top Članci

Kategorija

Zanimljivi Članci