Назад к вопросам
СБЕР
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 сможет его освободить.