Sobes.tech
Junior — Middle

Ar gali išvardyti Java egzistuojančių nuorodų tipus ir jų ypatybes?

sobes.tech AI

Atsakymas iš AI

Java yra šie nuorodų tipai, kurie daro įtaką šiukšlių rinkimui ir atminties valdymui:

  1. Stipri nuoroda (Strong Reference)

    • Standartinė nuoroda, kurią naudojame pagal numatytuosius nustatymus.
    • Objektas su stipria nuoroda nėra ištrinamas šiukšlių rinkėjo.
  2. Minkšta nuoroda (Soft Reference)

    • Naudojama talpykloje.
    • Objektai su minkštomis nuorodomis ištrinami tik esant trūkumui atmintyje.
    • Klasė: java.lang.ref.SoftReference
  3. Silpna nuoroda (Weak Reference)

    • Objektai su silpnomis nuorodomis ištrinami kitame šiukšlių rinkimo cikle, jei nėra stiprių nuorodų.
    • Naudojama silpniems talpyklėms įgyvendinti.
    • Klasė: java.lang.ref.WeakReference
  4. Fantominė nuoroda (Phantom Reference)

    • Naudojama stebėti momentą, kai objektas yra pasiruošęs būti ištrintas.
    • Neleidžia gauti objekto per get() metodą (grąžina null).
    • Naudojama tikslesnei išteklių valymo kontrolei.
    • Klasė: java.lang.ref.PhantomReference

Pavyzdys, kaip sukurti silpną nuorodą:

import java.lang.ref.WeakReference;

String stipri = new String("Hello");
WeakReference<String> silpna = new WeakReference<>(stipri);

stipri = null; // dabar objektas pasiekiamas tik per silpną nuorodą

String reikšmė = silpna.get(); // gali grąžinti null, jei objektas jau surinktas