Sobes.tech
Назад к вопросам
Junior — Middle
61

Каким образом организована область памяти для переменных в языке Java?

Компании, где спрашивали
РЖДРЖД

Ответ от нейросети

sobes.tech AI

В Java область памяти для переменных организована следующим образом:

  • Стек (Stack): хранит локальные переменные и параметры методов. Каждому потоку соответствует свой стек. Переменные в стеке существуют только во время выполнения метода.
  • Куча (Heap): используется для хранения объектов и массивов, созданных с помощью оператора new. Куча общая для всех потоков.
  • Метаспейс (Metaspace): хранит метаданные классов и другую служебную информацию.

Пример:

public void example() {
    int localVar = 10; // хранится в стеке
    String str = new String("Hello"); // объект String в куче, ссылка в стеке
}

Таким образом, примитивные локальные переменные и ссылки на объекты хранятся в стеке, а сами объекты — в куче.