Isolationens ø i Java

Isolationens ø i Java

I Java tages objektdestruktion af skraldesamler modul og de genstande, der ikke har nogen referencer til dem, er berettiget til affaldsindsamling. Garbage Collector er i stand til at identificere denne type objekt. Lad os nu diskutere, hvad den nøjagtige Island of Isolation står for som følger:

  • Objekt 1-referencer Objekt 2 og Objekt 2-referencer Objekt 1. Hverken Objekt 1 eller Objekt 2 refereres af noget andet objekt. Det er en ø af isolation.
  • Grundlæggende er en ø af isolation en gruppe af objekter, der refererer til hinanden, men som ikke refereres af noget aktivt objekt i applikationen. Strengt taget er selv et enkelt ikke-refereret objekt også en ø af isolation.

Eksempel:

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

Produktion:



Isolationens ø i Java

Output forklaring:  

  • Inden et objekt destrueres, kalder Garbage Collector højst afsluttende metode én gang på det objekt. Det skyldes, at finalize()-metoden kaldes to gange i ovenstående eksempel, fordi to objekter er berettiget til skraldindsamling. Dette skyldes, at vi ikke har nogen eksterne referencer til t1- og t2-objekter efter at have udført t2=null.
  • Alt, hvad vi har, er kun interne referencer (som for eksempel er variabel i i klasse Test) til dem af hinanden. Der er ingen måde, vi kan kalde instansvariabler for begge objekter. Så ingen af ​​objekterne kan kaldes igen indtil ' t2.i  =  t1 '
Isolationens ø i Java
  • Begge objekter har eksterne referencer t1 og t2.
  • t1 = nul: Begge objekter kan nås via henholdsvis t2.i og t2. t2 = null: Ingen måde at nå nogen af ​​objekterne. 
     

Nu er begge genstande berettiget til renovation som der er ingen måde, vi kan kalde dem . Dette er populært kendt som Isolationens ø.


Top Artikler

Kategori

Interessante Artikler