Île d'isolement à Java

Î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:



Île d

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
  • 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.


Top Articles

Catégorie

Des Articles Intéressants