Sobes.tech
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:

  1. Silná referencia (Strong Reference)

    • Bežná referencia, ktorú používame predvolene.
    • Objekt so silnou referenciou nebude odstránený garbage collectorom.
  2. 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
  3. 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
  4. 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ý