Wyspa izolacji na Jawie

Wyspa izolacji na Jawie

W Javie niszczeniem obiektów zajmuje się zbieracz śmieci module, a obiekty, które nie mają do nich żadnych odniesień, kwalifikują się do wyrzucania elementów bezużytecznych. Garbage Collector jest w stanie zidentyfikować tego typu obiekty. Omówmy teraz, co dokładnie oznacza Wyspa Izolacji w następujący sposób:

  • Obiekt 1 odwołuje się do Obiektu 2, a Obiekt 2 odwołuje się do Obiektu 1. Ani Obiekt 1, ani Obiekt 2 nie odwołuje się do żadnego innego obiektu. To wyspa izolacji.
  • Zasadniczo wyspa izolacji to grupa obiektów, które odwołują się do siebie, ale nie odwołuje się do nich żaden aktywny obiekt w aplikacji. Ściśle mówiąc, nawet pojedynczy obiekt, do którego nie ma odniesienia, jest również wyspą izolacji.

Przykład:

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

Wyjście:



Wyspa izolacji na Jawie

Wyjaśnienie wyjścia:  

  • Przed zniszczeniem obiektu Garbage Collector wywołuje na tym obiekcie metodę finalize najwyżej raz. Dzieje się tak dlatego, że w powyższym przykładzie metoda finalize() została wywołana dwukrotnie, ponieważ dwa obiekty kwalifikują się do odśmiecania. Dzieje się tak, ponieważ po wykonaniu t2=null nie mamy żadnych zewnętrznych odniesień do obiektów t1 i t2.
  • Wszystko, co mamy, to tylko wewnętrzne odniesienia (które są na przykład zmienną i klasy Test) do siebie nawzajem. Nie ma możliwości wywołania zmiennej instancji obu obiektów. Zatem żaden z obiektów nie może zostać ponownie wywołany ' t2.i  = t1 '
Wyspa izolacji na Jawie
  • Obydwa obiekty posiadają odniesienia zewnętrzne t1 i t2.
  • t1 = zero: Do obu obiektów można dotrzeć odpowiednio poprzez t2.i i t2. t2 = zero: Brak możliwości dotarcia do żadnego z obiektów. 
     

Teraz oba obiekty kwalifikują się do odśmiecania jako nie możemy w żaden sposób do nich zadzwonić . Jest to powszechnie znane jako Wyspa izolacji.


Najpopularniejsze Artykuły

Kategoria

Ciekawe Artykuły