Isolationens ø i Java
I Java tages objektdestruktion af skraldesamler modul og de genstande, der ikke har nogen referencer til dem, er berettiget til affaldsindsamling. Garbage Collector er i stand til at identificere denne type objekt. Lad os nu diskutere, hvad den nøjagtige Island of Isolation står for som følger:
- Objekt 1-referencer Objekt 2 og Objekt 2-referencer Objekt 1. Hverken Objekt 1 eller Objekt 2 refereres af noget andet objekt. Det er en ø af isolation.
- Grundlæggende er en ø af isolation en gruppe af objekter, der refererer til hinanden, men som ikke refereres af noget aktivt objekt i applikationen. Strengt taget er selv et enkelt ikke-refereret objekt også en ø af isolation.
Eksempel:
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' ); } }
Produktion:
Output forklaring:
- Inden et objekt destrueres, kalder Garbage Collector højst afsluttende metode én gang på det objekt. Det skyldes, at finalize()-metoden kaldes to gange i ovenstående eksempel, fordi to objekter er berettiget til skraldindsamling. Dette skyldes, at vi ikke har nogen eksterne referencer til t1- og t2-objekter efter at have udført t2=null.
- Alt, hvad vi har, er kun interne referencer (som for eksempel er variabel i i klasse Test) til dem af hinanden. Der er ingen måde, vi kan kalde instansvariabler for begge objekter. Så ingen af objekterne kan kaldes igen indtil ' t2.i = t1 '
- Begge objekter har eksterne referencer t1 og t2.
Nu er begge genstande berettiget til renovation som der er ingen måde, vi kan kalde dem . Dette er populært kendt som Isolationens ø.