Junior — Middle
Felsorolnád a Java-ban létező hivatkozástípusokat és azok jellemzőit?
sobes.tech MI
Válasz az MI-től
Java-ban a következő típusú hivatkozások léteznek, amelyek befolyásolják a szemétgyűjtést és a memóriakezelést:
-
Erős Hivatkozás (Strong Reference)
- Az alapértelmezett, általában használt hivatkozás.
- Egy erős hivatkozással rendelkező objektumot a szemétgyűjtő nem töröl.
-
Puha Hivatkozás (Soft Reference)
- Gyorsítótárazásra használják.
- A puha hivatkozásokkal rendelkező objektumokat csak memóriahiány esetén törlik.
- Osztály:
java.lang.ref.SoftReference
-
Gyenge Hivatkozás (Weak Reference)
- A gyenge hivatkozásokkal rendelkező objektumokat a következő szemétgyűjtési ciklusban törlik, ha nincs erős hivatkozás.
- Gyenge cache-ek megvalósítására használják.
- Osztály:
java.lang.ref.WeakReference
-
Fantom Hivatkozás (Phantom Reference)
- Az objektum törlésének pillanatát követi nyomon.
- Nem lehet az objektumot a
get()metódussal elérni (null-t ad vissza). - Finomabb kontrollt tesz lehetővé az erőforrások tisztításában.
- Osztály:
java.lang.ref.PhantomReference
Példa gyenge hivatkozás létrehozására:
import java.lang.ref.WeakReference;
String erős = new String("Hello");
WeakReference<String> gyenge = new WeakReference<>(erős);
erős = null; // most már csak a gyenge hivatkozáson keresztül érhető el az objektum
String érték = gyenge.get(); // null-t adhat, ha az objektum már összegyűjtésre került