logo

Eiland van isolatie op Java

In Java wordt objectvernietiging verzorgd door de afvalverzamelaar module en de objecten die geen enkele verwijzing ernaar hebben, komen in aanmerking voor garbagecollection. Garbage Collector is in staat dit type object te identificeren. Laten we nu als volgt bespreken waar het Eiland van Isolatie precies voor staat:

  • Object 1-referenties Object 2- en Object 2-referenties Object 1. Er wordt door geen enkel ander object naar Object 1 of Object 2 verwezen. Dat is een eiland van isolatie.
  • In feite is een isolatie-eiland een groep objecten die naar elkaar verwijzen, maar waarnaar door geen enkel actief object in de toepassing wordt verwezen. Strikt genomen is zelfs een enkel object zonder referentie ook een eiland van isolatie.

Voorbeeld:



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');  } } 

Uitgang:

gegevenstypen in Java
Eiland van isolatie op Java

Uitvoer uitleg:  

  • Voordat een object wordt vernietigd, roept Garbage Collector de finalize-methode maximaal één keer aan voor dat object. Dit komt doordat de methode finalize() in het bovenstaande voorbeeld twee keer wordt aangeroepen, omdat twee objecten in aanmerking komen voor garbagecollection. Dit komt omdat we geen externe verwijzingen naar t1- en t2-objecten hebben na het uitvoeren van t2=null.
  • Het enige dat we hebben zijn alleen interne verwijzingen (die bijvoorbeeld variabele i van de klasse Test zijn) naar elkaar. We kunnen op geen enkele manier een instantievariabele van beide objecten noemen. Geen van de objecten kan dus opnieuw worden opgeroepen ' t2.i  =  t1 '
Eiland van isolatie op Java
  • Beide objecten hebben externe referenties t1 en t2.
  • t1 = nul:Beide objecten zijn respectievelijk via t2.i en t2 te bereiken.t2 = nul:Geen mogelijkheid om de objecten te bereiken. 
     

Nu komen beide objecten in aanmerking voor garbagecollection als we kunnen ze op geen enkele manier bellen . Dit staat in de volksmond bekend als Eiland van isolatie.



hoe verborgen apps op Android te openen