Javassa objektien tuhoamisesta huolehtii roskien kerääjä moduuli ja objektit, joilla ei ole viittauksia niihin, ovat oikeutettuja roskakoriin. Garbage Collector pystyy tunnistamaan tämän tyyppiset esineet. Keskustelkaamme nyt siitä, mitä eristyksen saari tarkalleen tarkoittaa seuraavasti:
- Objekti 1 viittaa objektiin 2 ja objekti 2 viittaa objektiin 1. Mikään muu objekti ei viittaa objektiin 1 tai objektiin 2. Se on eristyneisyyden saari.
- Pohjimmiltaan eristyssaareke on joukko objekteja, jotka viittaavat toisiinsa, mutta joihin ei viitata mikään sovelluksen aktiivinen objekti. Tarkkaan ottaen jopa yksittäinen viittaamaton kohde on myös eristyneisyyden saari.
Esimerkki:
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'); } }
Lähtö:
alleviivaa teksti css:llä
Lähtöselitys:
- Ennen objektin tuhoamista Garbage Collector kutsuu viimeistelymenetelmän enintään kerran kyseiselle objektille. Se johtuu siitä, että finalize()-menetelmää kutsutaan kaksi kertaa yllä olevassa esimerkissä, koska kaksi objektia ovat kelvollisia roskien keräämiseen. Tämä johtuu siitä, että meillä ei ole ulkoisia viittauksia t1- ja t2-objekteihin, kun t2=null on suoritettu.
- Meillä on vain sisäisiä viittauksia (joka on esimerkiksi luokan Test muuttuja i) niihin toisiinsa. Emme voi millään tavalla kutsua molempien objektien ilmentymämuuttujia. Joten mitään objekteja ei voida kutsua uudelleen ennen kuin ' t2.i = t1 '

- Molemmilla objekteilla on ulkoiset viitteet t1 ja t2.
Nyt molemmat kohteet ovat oikeutettuja roskakoriin emme voi kutsua heitä millään tavalla . Tämä tunnetaan yleisesti nimellä Eristyksen saari.
jos muuten jos muuten jos java