Где хранятся примитивные объекты которые входят в состав динамических объектов

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

Ответ

Примитивные объекты (int, float, boolean и т.д.), входящие в состав динамических объектов, хранятся непосредственно внутри самого объекта в heap (куче). В Java/Kotlin все объекты создаются в куче, включая их примитивные поля.

Пример:

class Person {
    var age: Int = 25 // примитив хранится внутри объекта Person в куче
    var name: String = "Ivan" // ссылка на String в куче
}

Для локальных переменных примитивы хранятся в stack, но если они являются полями объектов - всегда в куче. В Android это важно учитывать для оптимизации памяти.