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:
-
Stipri nuoroda (Strong Reference)
- Standartinė nuoroda, kurią naudojame pagal numatytuosius nustatymus.
- Objektas su stipria nuoroda nėra ištrinamas šiukšlių rinkėjo.
-
Minkšta nuoroda (Soft Reference)
- Naudojama talpykloje.
- Objektai su minkštomis nuorodomis ištrinami tik esant trūkumui atmintyje.
- Klasė:
java.lang.ref.SoftReference
-
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
-
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