Otok izolacije na Javi
U Javi se za uništavanje objekata brine sakupljač smeća modul i objekti koji nemaju nikakve reference na njih prihvatljivi su za skupljanje smeća. Garbage Collector je sposoban identificirati ovu vrstu objekta. Raspravljajmo sada o tome što točno predstavlja Otok izolacije na sljedeći način:
- Objekt 1 referira na Objekt 2, a Objekt 2 na Objekt 1. Ni jedan drugi objekt ne referencira niti Objekt 1 niti Objekt 2. To je otok izolacije.
- U osnovi, otok izolacije je grupa objekata koji referenciraju jedni druge, ali ih ne referencira niti jedan aktivni objekt u aplikaciji. Strogo govoreći, čak je i jedan nereferencirani objekt također otok izolacije.
Primjer:
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' ); } }
Izlaz:
Objašnjenje izlaza:
- Prije uništavanja objekta Garbage Collector poziva metodu finalize najviše jednom na tom objektu. To je zato što je metoda finalize() pozvana dva puta u gornjem primjeru zato što su dva objekta prikladna za sakupljanje smeća. To je zato što nemamo nikakve vanjske reference na t1 i t2 objekte nakon izvršavanja t2=null.
- Sve što imamo su samo interne reference (koje su u varijabli instance i klase Test) međusobno. Ne postoji način na koji možemo nazvati varijablu instance oba objekta. Dakle, nijedan od objekata ne može se ponovno pozvati do ' t2.i = t1 '
- Oba objekta imaju vanjske reference t1 i t2.
Sada su oba objekta prikladna za odvoz smeća nema šanse da ih možemo nazvati . Ovo je popularno poznato kao Otok izolacije.