Sobes.tech
Назад к вопросам
Junior — Middle
76

Можете объяснить, что такое мягкая ссылка в контексте управления памятью в Java?

Компании, где спрашивали
Юрент

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

sobes.tech AI

Мягкая ссылка (SoftReference) в Java — это тип ссылки, который позволяет объекту быть собранным сборщиком мусора, если в системе недостаточно памяти, но при этом объект сохраняется, пока памяти достаточно.

Это полезно для кэширования: объекты с мягкими ссылками не удаляются сразу, а только при необходимости освободить память.

Пример использования мягкой ссылки:

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; // теперь объект доступен только через мягкую ссылку

        Object obj = softRef.get();
        if (obj != null) {
            System.out.println("Объект доступен");
        } else {
            System.out.println("Объект уже собран сборщиком мусора");
        }
    }
}