Ответ
Когда объект в куче становится недостижимым (нет активных ссылок на него), он помечается как мусор. Сборщик мусора (GC) периодически сканирует кучу, находит такие объекты и освобождает занимаемую ими память. В Android используется generational GC:
- Молодое поколение (Young Generation) – объекты живут недолго, GC работает часто
- Старое поколение (Old Generation) – выжившие объекты перемещаются сюда, GC реже
Пример:
fun createTempObject() {
val temp = Any() // Создается в куче
} // После выхода из функции temp становится недостижим
GC не гарантирует мгновенное удаление – память освобождается при нехватке или по расписанию.