С какой областью памяти работает Garbage Collector

«С какой областью памяти работает Garbage Collector» — вопрос из категории Управление памятью, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Garbage Collector (GC) в Android работает с кучей (Heap) — областью памяти, где хранятся объекты, созданные во время выполнения приложения. Он автоматически освобождает память, удаляя объекты, на которые нет активных ссылок.

Особенности:

  • Young Generation (Eden, Survivor spaces) — для краткоживущих объектов.
  • Old Generation — для долгоживущих объектов.
  • Permanent Generation (до Android 5.0) — метаданные классов (заменена на ART с компактирующим GC).

Пример утечки:

class LeakyActivity : Activity() {
    private val leak = staticList // Статическое поле держит ссылку на Activity
    companion object {
        val staticList = mutableListOf<Any>()
    }
}

Решение: избегать статических ссылок на контекст/View.