Junior — Middle
Môžeš uviesť typy odkazov, ktoré v Jave existujú, a ich vlastnosti?
sobes.tech AI
Odpoveď od AI
V Jave existujú nasledujúce typy odkazov, ktoré ovplyvňujú zber odpadu a správu pamäte:
-
Silná referencia (Strong Reference)
- Bežná referencia, ktorú používame predvolene.
- Objekt so silnou referenciou nebude odstránený garbage collectorom.
-
Mäkká referencia (Soft Reference)
- Používa sa na cache.
- Objekty s mäkkými referenciami sú odstránené iba pri nedostatku pamäte.
- Trieda:
java.lang.ref.SoftReference
-
Slabá referencia (Weak Reference)
- Objekty so slabými referenciami sú odstránené pri nasledujúcom cykle zberu odpadu, ak neexistujú žiadne silné referencie.
- Používa sa na implementáciu slabých cache.
- Trieda:
java.lang.ref.WeakReference
-
Fantomová referencia (Phantom Reference)
- Používa sa na sledovanie okamihu, keď je objekt pripravený na odstránenie.
- Neumožňuje získať objekt cez metódu
get()(vracia null). - Používa sa na jemnejšiu kontrolu čistenia zdrojov.
- Trieda:
java.lang.ref.PhantomReference
Príklad vytvorenia slabšej referencie:
import java.lang.ref.WeakReference;
String silná = new String("Hello");
WeakReference<String> slabá = new WeakReference<>(silná);
silná = null; // teraz je objekt dostupný iba cez slabú referenciu
String hodnota = slabá.get(); // môže vrátiť null, ak bol objekt už zozbieraný