В каких ситуациях и почему происходит утечка памяти в приложении?

Утечка памяти в приложении происходит, когда память, выделенная под объекты, больше не нужна, но не освобождается системой из-за того, что на эти объекты всё ещё существуют ссылки. В Android это часто случается из-за:

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

Что ответить на собеседовании

Утечка памяти в приложении происходит, когда память, выделенная под объекты, больше не нужна, но не освобождается системой из-за того, что на эти объекты всё ещё существуют ссылки. В Android это часто случается из-за:

Подробный разбор

Ответ с пояснениями

Утечка памяти в приложении происходит, когда память, выделенная под объекты, больше не нужна, но не освобождается системой из-за того, что на эти объекты всё ещё существуют ссылки. В Android это часто случается из-за:

  • Долгоживущих ссылок на контекст Activity или View, которые мешают сборщику мусора освободить память после уничтожения Activity.
  • Использования статических переменных, которые держат ссылки на объекты с коротким жизненным циклом.
  • Некорректного использования слушателей (Listeners) и коллбеков, которые не отписываются.
  • Неправильного управления потоками и асинхронными задачами, когда они продолжают ссылаться на объекты.

Например, если в Activity создать анонимный класс Runnable, который ссылается на Activity, и не отменить его при уничтожении, Activity не будет собрана сборщиком мусора, что приведёт к утечке памяти.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку