Ответ
Примитивные поля объекта хранятся в куче (Heap), как часть памяти, выделенной для самого объекта.
Распределение памяти в Java:
- Куча (Heap): Хранит все объекты и их поля (как примитивные, так и ссылки на другие объекты).
- Стек (Stack): Хранит локальные переменные методов (примитивы и ссылки) и вызовы методов.
Пример:
class Person {
int age; // Примитивное поле -> хранится в куче (часть объекта Person)
String name; // Ссылочное поле -> в куче хранится ссылка, сам объект String тоже в куче
void someMethod() {
int localVar = 30; // Локальная примитивная переменная -> хранится в стеке
Person temp = this; // Локальная ссылочная переменная -> ссылка хранится в стеке
}
}
Итог: Примитив внутри объекта — в куче. Локальный примитив внутри метода — в стеке.