Sobes.tech
Junior — Middle

Можете ли објаснити шта је мека референца у контексту управљања меморијом у Јави?

sobes.tech АИ

Одговор од АИ

U Java-u, SoftReference je tip reference koja omogućava objektu da bude sakupljen od strane garbage collectora ako sistemska memorija nije dovoljna, ali dok postoji dovoljno memorije, objekat ostaje sačuvan.

Ovo je korisno za keširanje: objekti sa soft references se ne brišu odmah, već samo kada je potrebno osloboditi memoriju.

Primer korišćenja soft reference:

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; // sada je objekat dostupan samo putem soft reference

        Object obj = softRef.get();
        if (obj != null) {
            System.out.println("Objekat je dostupan");
        } else {
            System.out.println("Objekat je već sakupljen od strane garbage collectora");
        }
    }
}