logo

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:

print array i java
Isolationens ø i Java

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 '
Isolationens ø i Java
  • Begge objekter har eksterne referencer t1 og t2.
  • t1 = nul:Begge objekter kan nås via henholdsvis t2.i og t2.t2 = null:Ingen måde at nå nogen af ​​objekterne. 
     

Nu er begge genstande berettiget til renovation som der er ingen måde, vi kan kalde dem . Dette er populært kendt som Isolationens ø.



konvertering fra dato til streng