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

  1. 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.
  2. 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
  3. 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
  4. 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