logo

Île d'isolement à Java

En Java, la destruction des objets est prise en charge par le éboueur Le module et les objets qui n'ont aucune référence à eux sont éligibles pour le garbage collection. Garbage Collector est capable d’identifier ce type d’objet. Voyons maintenant ce que signifie exactement l'île d'isolement comme suit :

  • L'objet 1 fait référence à l'objet 2 et l'objet 2 fait référence à l'objet 1. Ni l'objet 1 ni l'objet 2 ne sont référencés par un autre objet. C'est une île d'isolement.
  • Fondamentalement, un îlot d'isolement est un groupe d'objets qui se référencent les uns les autres mais ne sont référencés par aucun objet actif dans l'application. À proprement parler, même un seul objet non référencé est également un îlot d'isolement.

Exemple:



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

Sortir:

amrita rao acteur
Île d'isolement à Java

Explication de la sortie :  

  • Avant de détruire un objet, Garbage Collector appelle la méthode finalize au plus une fois sur cet objet. C'est parce que la méthode finalize() est appelée deux fois dans l'exemple ci-dessus, car deux objets sont éligibles pour le garbage collection. En effet, nous n'avons aucune référence externe aux objets t1 et t2 après l'exécution de t2=null.
  • Tout ce que nous avons, ce sont uniquement des références internes (qui sont dans l'instance variable i de la classe Test) les unes des autres. Il n'y a aucun moyen d'appeler une variable d'instance des deux objets. Ainsi, aucun des objets ne peut être rappelé avant ' t2.i  =  t1 '
Île d'isolement à Java
  • Les deux objets ont des références externes t1 et t2.
  • t1 = zéro :Les deux objets peuvent être atteints via t2.i et t2 respectivement.t2 = nul :Aucun moyen d'atteindre les objets. 
     

Désormais, les deux objets sont éligibles pour le garbage collection. nous ne pouvons pas les appeler . C'est ce qu'on appelle communément Île d'isolement.



f films