Junior — Middle
Можеш ли да набројиш типове референци које постоје у Јави и њихове особине?
sobes.tech АИ
Одговор од АИ
U Javi postoji sledeće vrste referenci koje utiču na sakupljanje smeća i upravljanje memorijom:
-
Čvrsta Referenca (Strong Reference)
- Uobičajena referenca koju koristimo po defaultu.
- Objekat sa čvrstom referencom neće biti obrisan od strane sakupljača smeća.
-
Mekana Referenca (Soft Reference)
- Koristi se za keširanje.
- Objekti sa mekanim referencama se brišu samo u slučaju nedostatka memorije.
- Klasa:
java.lang.ref.SoftReference
-
Slaba Referenca (Weak Reference)
- Objekti sa slabim referencama se brišu u sledećem ciklusu sakupljanja smeća ako nema čvrstih referenci.
- Koristi se za implementaciju slabih keševa.
- Klasa:
java.lang.ref.WeakReference
-
Fantom Referenca (Phantom Reference)
- Koristi se za praćenje trenutka kada je objekat spreman za brisanje.
- Ne dozvoljava dobijanje objekta putem metode
get()(vraća null). - Koristi se za finiju kontrolu čišćenja resursa.
- Klasa:
java.lang.ref.PhantomReference
Primer kreiranja slabe reference:
import java.lang.ref.WeakReference;
String jaka = new String("Hello");
WeakReference<String> slaba = new WeakReference<>(jaka);
jaka = null; // sada je objekat dostupan samo putem slabe reference
String vrednost = slaba.get(); // može vratiti null ako je objekat već sakupljen