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