logo

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:

Aktor Amrita Rao
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.



format daty.format