Вопрос проверяет понимание работы примитивных типов, стека и распределения памяти в JVM.
Переменная i типа int создаётся в стеке текущего метода.
Значение 10 хранится напрямую в этой ячейке памяти.
Никакие объекты в heap при этом не создаются.int — это примитивный тип, он не имеет ссылочной природы.
Время жизни переменной ограничено временем выполнения метода.
Чтобы понять, что именно происходит, нужно разобраться, как JVM работает с примитивами.
Примитивные типы — это типы данных, которые хранят значение напрямую, без создания объектов.
int iПри выполнении строки:
int i = 10;
происходит следующее:
В stack memory создаётся локальная переменная i
В эту переменную напрямую записывается значение 10
Heap не используется вообще
Stack используется для:
локальных переменных
параметров методов
ссылок на объекты
Преимущества:
очень быстрый доступ
автоматическое освобождение памяти
отсутствие участия GC
Переменная i существует только в рамках метода
После выхода из метода память под неё автоматически освобождается
Примитивы хранятся в стеке и не создают нагрузки на heap и garbage collector.