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:
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.
Potrebbe Piacerti
Articoli Più
Categoria
Articoli Interessanti