Sobes.tech
Junior — Middle

Můžeš vyjmenovat typy odkazů, které v Javě existují, a jejich vlastnosti?

sobes.tech AI

Odpověď od AI

V jazyce Java existují následující typy odkazů, které ovlivňují sběr odpadu a správu paměti:

  1. Silný odkaz (Strong Reference)

    • Obvyklý odkaz, který používáme ve výchozím nastavení.
    • Objekt s pevným odkazem nebude odstraněn garbage collectorem.
  2. Měkký odkaz (Soft Reference)

    • Používá se pro kešování.
    • Objekty s měkkými odkazy jsou odstraněny pouze při nedostatku paměti.
    • Třída: java.lang.ref.SoftReference
  3. Slabý odkaz (Weak Reference)

    • Objekty se slabými odkazy jsou odstraněny při příštím cyklu sběru odpadu, pokud neexistují žádné silné odkazy.
    • Používá se k implementaci slabých keší.
    • Třída: java.lang.ref.WeakReference
  4. Fantomový odkaz (Phantom Reference)

    • Používá se ke sledování okamžiku, kdy je objekt připraven k odstranění.
    • Neumožňuje získat objekt přes metodu get() (vrací null).
    • Používá se pro jemnější kontrolu čištění zdrojů.
    • Třída: java.lang.ref.PhantomReference

Příklad vytvoření slabého odkazu:

import java.lang.ref.WeakReference;

String silný = new String("Hello");
WeakReference<String> slabý = new WeakReference<>(silný);

silný = null; // nyní je objekt dostupný pouze přes slabý odkaz

String hodnota = slabý.get(); // může vrátit null, pokud byl objekt již sesbíran