Sobes.tech
Junior — Middle

Magyarázd el, mi az a gyenge hivatkozás, és milyen esetekben használják a programozásban.

sobes.tech MI

Válasz az MI-től

Gyenge hivatkozás (weak reference) egy olyan hivatkozás egy objektumra, amely nem akadályozza meg a szemétgyűjtőt abban, hogy összegyűjtse az adott objektumot. Ha csak gyenge hivatkozások léteznek egy objektumra, a szemétgyűjtő felszabadíthatja az ezzel az objektummal foglalt memóriát.

Olyan esetekben használják, amikor szükség van egy hivatkozás fenntartására egy objektumra, de nem akadályozza meg az eltávolítását, például:

  • Objektumok gyorsítótárazása, hogy ne tartsuk őket a memóriában hosszabb ideig, mint szükséges.
  • Hírolvasók vagy eseménykezelők hivatkozásai, hogy elkerüljük a memóriaszivárgásokat.

Java-ban a gyenge hivatkozásokat a java.lang.ref csomagból származó WeakReference osztály valósítja meg.

Példa:

WeakReference<MyObject> weakRef = new WeakReference<>(new MyObject());
// Ha már nincsenek erős hivatkozások MyObject-re, az objektum gyűjthető a szemétgyűjtő által