Sobes.tech
Junior — Middle

El tudná magyarázni, hogy mi az a gyenge hivatkozás a Java memória kezelésében?

sobes.tech MI

Válasz az MI-től

A SoftReference Java-ban egy olyan típusú referencia, amely lehetővé teszi, hogy egy objektumot a szemétgyűjtő összegyűjtsön, ha a rendszer memóriája kevés, de amíg elegendő memória van, az objektum megmarad.

Ez hasznos cache-eléshez: a soft referenciákkal rendelkező objektumokat nem törlik azonnal, csak akkor, amikor szükség van a memória felszabadítására.

Példa a soft referencia használatára:

import java.lang.ref.SoftReference;

public class SoftReferenceExample {
    public static void main(String[] args) {
        Object strongRef = new Object();
        SoftReference<Object> softRef = new SoftReference<>(strongRef);

        strongRef = null; // most már csak soft referencia által elérhető az objektum

        Object obj = softRef.get();
        if (obj != null) {
            System.out.println("Objektum elérhető");
        } else {
            System.out.println("Objektum már összegyűjtésre került a szemétgyűjtő által");
        }
    }
}