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
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 '

- Entrambi gli oggetti hanno riferimenti esterni t1 e t2.
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