Java par objektu iznīcināšanu rūpējas atkritumu savācējs modulis un objekti, kuriem nav atsauces uz tiem, ir piemēroti atkritumu savākšanai. Atkritumu savācējs spēj identificēt šāda veida objektus. Tagad apspriedīsim, ko tieši nozīmē Izolācijas sala:
- Objekts 1 atsaucas uz objektu 2 un objekts 2 atsaucas uz objektu 1. Ne uz objektu 1, ne uz objektu 2 nav atsauces neviens cits objekts. Tā ir izolācijas sala.
- Būtībā izolācijas sala ir objektu grupa, kas atsaucas viens uz otru, bet uz kuriem neattiecas neviens aktīvs objekts lietojumprogrammā. Stingri sakot, pat viens objekts bez atsauces ir arī izolācijas sala.
Piemērs:
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'); } }
Izvade:
struktūras, izmantojot masīvus c
Izvades skaidrojums:
- Pirms objekta iznīcināšanas atkritumu savācējs ne vairāk kā vienu reizi šim objektam izsauc pabeigšanas metodi. Tas ir tāpēc, ka iepriekšējā piemērā metode finalize() tiek izsaukta divas reizes, jo divi objekti ir piemēroti atkritumu savākšanai. Tas ir tāpēc, ka pēc t2=null izpildes mums nav nekādu ārēju atsauču uz t1 un t2 objektiem.
- Viss, kas mums ir, ir tikai iekšējās atsauces (kas, piemēram, ir klases Test mainīgais i) uz tām. Nekādā veidā mēs nevaram izsaukt abu objektu gadījumu mainīgo. Tātad neviens no objektiem nevar tikt atkārtoti izsaukts līdz ' t2.i = t1 '

- Abiem objektiem ir ārējās atsauces t1 un t2.
Tagad abi objekti ir piemēroti atkritumu savākšanai kā mēs nekādi nevaram viņus nosaukt . Tas ir tautā pazīstams kā Izolācijas sala.
java noklusējuma parametri