Ostrov izolácie na Jáve

Ostrov izolácie na Jáve

V jazyku Java sa o ničenie objektov stará zberač odpadu modul a objekty, ktoré na ne nemajú žiadne odkazy, sú vhodné na zber odpadu. Garbage Collector je schopný identifikovať tento typ objektu. Teraz poďme diskutovať o tom, čo presne znamená Island of Isolation takto:

  • Objekt 1 odkazuje na objekt 2 a objekt 2 odkazuje na objekt 1. Ani objekt 1, ani objekt 2 neodkazuje žiadny iný objekt. To je ostrov izolácie.
  • Ostrov izolácie je v podstate skupina objektov, ktoré sa navzájom odkazujú, ale neodkazuje sa na ne žiadny aktívny objekt v aplikácii. Presne povedané, dokonca aj jeden nereferencovaný objekt je tiež ostrovom izolácie.

Príklad:

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

výstup:

Ostrov izolácie na Jáve

Vysvetlenie výstupu:  

  • Pred zničením objektu Garbage Collector volá metódu finalize maximálne raz na tomto objekte. Je to preto, že metóda finalize() sa vo vyššie uvedenom príklade volá dvakrát, pretože dva objekty sú vhodné na zber odpadu. Je to preto, že po vykonaní t2=null nemáme žiadne externé odkazy na objekty t1 a t2.
  • Všetko, čo máme, sú iba interné odkazy (čo je napríklad premenná i triedy Test) na seba navzájom. Neexistuje spôsob, ako môžeme nazvať premennú inštancie oboch objektov. Takže žiadny z objektov nemožno znova vyvolať ' t2.i  =  t1 '
Ostrov izolácie na Jáve
  • Oba objekty majú externé referencie t1 a t2.
  • t1 = nula: Oba objekty je možné dosiahnuť cez t2.i a t2. t2 = null: Žiadny spôsob, ako dosiahnuť niektorý z objektov. 
     

Teraz sú oba objekty vhodné na zber odpadu neexistuje spôsob, ako ich môžeme zavolať . Toto je ľudovo známe ako Ostrov izolácie.