logo

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:

attore di ariete
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.



concatenazione di stringhe java