Острів Ізоляції на Яві

Острів Ізоляції на Яві

У Java знищення об’єктів здійснюється за допомогою збирач сміття модуль і об’єкти, які не мають жодних посилань на них, підлягають збиранню сміття. Garbage Collector здатний ідентифікувати цей тип об'єктів. Тепер давайте обговоримо, що саме означає Острів Ізоляції:

  • Об’єкт 1 посилається на об’єкт 2, а об’єкт 2 посилається на об’єкт 1. Ні на об’єкт 1, ні на об’єкт 2 не посилається жодний інший об’єкт. Це острів ізоляції.
  • По суті, острів ізоляції — це група об’єктів, які посилаються один на одного, але на які не посилається жоден активний об’єкт у програмі. Строго кажучи, навіть окремий об’єкт, на який немає посилань, також є острівцем ізоляції.

приклад:

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

Вихід:



Острів Ізоляції на Яві

Пояснення результату:  

  • Перед знищенням об’єкта Garbage Collector щонайбільше один раз викликає метод finalize для цього об’єкта. Це тому, що метод finalize() викликається двічі у наведеному вище прикладі, тому що два об’єкти придатні для збирання сміття. Це тому, що ми не маємо жодних зовнішніх посилань на об’єкти t1 і t2 після виконання t2=null.
  • Усе, що ми маємо, це лише внутрішні посилання (що є змінною екземпляра i класу Test) один на одного. Ми не можемо викликати змінну екземпляра обох об’єктів. Таким чином, жоден з об’єктів не може бути викликаний повторно до ' t2.i  =  t1 '
Острів Ізоляції на Яві
  • Обидва об’єкти мають зовнішні посилання t1 і t2.
  • t1 = нуль: До обох об’єктів можна дістатися через t2.i та t2 відповідно. t2 = нуль: Неможливо дістатися до жодного з об'єктів. 
     

Тепер обидва об’єкти підходять для збору сміття ми не можемо їх назвати . Це в народі відоме як Острів ізоляції.


Кращі Статті

Категорія

Цікаві Статті