Sobes.tech
Senior
46

ობიექტის პრიმიტიული ველი სად იქნება, heap-ში თუ stack-ში?

კომპანიებმა სადაც სთხოვეს
SSP Soft

პასუხი AI-სგან

sobes.tech AI

В Java примитивные поля объекта всегда хранятся внутри объекта, который располагается в куче (heap).

Объяснение:

  • Объекты в Java создаются в куче.
  • Все поля объекта (примитивные и ссылочные) являются частью объекта и хранятся вместе с ним в куче.
  • Примитивные поля занимают фиксированное место внутри объекта.

Стек (stack) используется для хранения локальных переменных методов, включая ссылки на объекты, но не для хранения самих объектов или их полей.

Пример:

class MyClass {
    int number; // примитивное поле
}

MyClass obj = new MyClass();

Здесь obj — ссылка, которая хранится в стеке (если локальная переменная), а сам объект MyClass с полем number — в куче.

Итого: примитивное поле объекта лежит в куче, внутри объекта.