Sobes.tech
Назад к вопросам
Senior
13

В каких случаях полезно использовать soft-ссылку?

Компании, где спрашивали
СБЕРСБЕР

Ответ от нейросети

sobes.tech AI

Soft-ссылки (WeakReference в Java) полезно использовать, когда нужно хранить объекты в памяти, но не препятствовать их сбору мусора при нехватке памяти. Например, кэш, который не должен удерживать объекты живыми, если они больше нигде не используются. Это помогает избежать утечек памяти и позволяет JVM эффективно управлять ресурсами.

Пример использования soft-ссылки для кэша:

import java.lang.ref.SoftReference;
import java.util.HashMap;
import java.util.Map;

public class Cache<K, V> {
    private Map<K, SoftReference<V>> cache = new HashMap<>();

    public void put(K key, V value) {
        cache.put(key, new SoftReference<>(value));
    }

    public V get(K key) {
        SoftReference<V> ref = cache.get(key);
        return (ref != null) ? ref.get() : null;
    }
}

Таким образом, если объект будет востребован, он будет возвращён из кэша, но при необходимости JVM сможет его освободить.