Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Kotlin: strong reference, soft reference, weak reference, phantom reference

Какие типы слабых и сильных ссылок существуют в JVM и когда их использовать?

Проверяет знание механизмов управления памятью с помощью разных типов ссылок.

Короткий ответ

В JVM есть четыре типа ссылок: сильная (strong), мягкая (soft), слабая (weak) и фантомная (phantom). Сильные не участвуют в сборке мусора. Мягкие используются для кэшей, удаляются при нехватке памяти. Слабые — для карт-кэширования, удаляются при следующем gc независимо от памяти. Фантомные применяются для финализации и пост-удаления.

Длинный ответ

1. Strong Reference

  • Обычные переменные Java

  • Объект жив, пока на него есть сильные ссылки

2. SoftReference

  • SoftReference<T>

  • Сохраняются до нехватки памяти

  • Идеальны для кэшей, где можно сбросить данные при давлении

3. WeakReference

  • WeakReference<T>

  • Удаляются при следующем сборщике мусора

  • Полезны для кешей, когда не критично удерживать объект

4. PhantomReference

  • PhantomReference<T> + ReferenceQueue

  • Используются для пост-финализационных действий и управления нативными ресурсами

Пример кэша:

Map<Key, SoftReference<Value>> cache = new HashMap<>();

Когда применять:

  • SoftReference — большие кэши, дружелюбные к памяти

  • WeakReference — слушатели, обратные указатели без удержания

  • Аватар

    Android Guru

    Anton Gulyaev

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    2

  • Сложность:

    6

Навыки

  • Kotlin

    Kotlin

Ключевые слова

#strong reference

#soft reference

#weak reference

#phantom reference

Подпишись на Android Developer в телеграм

  • Аватар

    Android Guru

    Anton Gulyaev

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.