Isola di isolamento a Giava

Isola di isolamento a Giava

In Java la distruzione degli oggetti è gestita da raccoglitore di rifiuti module e gli oggetti che non hanno alcun riferimento ad essi sono idonei per la garbage collection. Garbage Collector è in grado di identificare questo tipo di oggetto. Ora parliamo di cosa rappresenta esattamente l'Isola dell'Isolamento come segue:

  • Riferimenti all'Oggetto 1 Riferimenti all'Oggetto 2 e all'Oggetto 2 all'Oggetto 1. Né l'Oggetto 1 né l'Oggetto 2 vengono referenziati da nessun altro oggetto. Quella è un'isola di isolamento.
  • Fondamentalmente un'isola di isolamento è un gruppo di oggetti che fanno riferimento tra loro ma non sono referenziati da alcun oggetto attivo nell'applicazione. A rigor di termini, anche un singolo oggetto senza riferimenti è un'isola di isolamento.

Esempio:

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

Produzione:



Isola di isolamento a Giava

Spiegazione dell'uscita:  

  • Prima di distruggere un oggetto, Garbage Collector chiama il metodo finalize al massimo una volta su quell'oggetto. È perché il metodo finalize() viene chiamato due volte nell'esempio precedente perché due oggetti sono idonei per la garbage collection. Questo perché non abbiamo riferimenti esterni agli oggetti t1 e t2 dopo l'esecuzione di t2=null.
  • Tutto ciò che abbiamo sono solo riferimenti interni (che è nella variabile di istanza i della classe Test) tra loro. Non è possibile chiamare la variabile di istanza di entrambi gli oggetti. Quindi nessuno degli oggetti può essere richiamato di nuovo fino a quando ' t2.i  =  t1 '
Isola di isolamento a Giava
  • Entrambi gli oggetti hanno riferimenti esterni t1 e t2.
  • t1 = zero: Entrambi gli oggetti sono raggiungibili rispettivamente tramite t2.i e t2. t2 = nullo: Nessun modo per raggiungere nessuno degli oggetti. 
     

Ora entrambi gli oggetti sono idonei per la Garbage Collection come non c'è modo di chiamarli . Questo è popolarmente noto come Isola dell'isolamento.


Articoli Più

Categoria

Articoli Interessanti