Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Java: heap, memory

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

Вопрос проверяет понимание модели памяти JVM и различий между значениями и ссылками.

Короткий ответ

Примитивы обычно хранятся в стеке или внутри объектов.
Объекты-обёртки всегда размещаются в heap.
Ссылки на объекты хранятся в стеке или в других объектах.
Место хранения зависит от контекста использования.
Garbage Collector работает только с объектами в heap.

Длинный ответ

Для корректного понимания важно рассматривать память JVM целиком.

Основные области памяти JVM

JVM использует несколько ключевых областей:

  • Stack

  • Heap

  • Metaspace

В этом вопросе нас интересуют первые две.

Хранение примитивов

Примитивы могут храниться:

  • В stack, если это локальные переменные

  • В heap, если они являются полями объекта

Пример:

class A {
    int x; // хранится в heap как часть объекта
}

void method() {
    int y = 10; // хранится в stack
}

Хранение объектов-обёрток

Объекты-обёртки (Integer, Long, Boolean и т.д.):

  • Всегда создаются в heap

  • В стеке хранится только ссылка на объект

Даже если значение маленькое и взято из кэша, сам объект всё равно находится в heap.

Роль Garbage Collector

GC:

  • Отслеживает достижимость объектов в heap

  • Не работает со stack напрямую

  • Удаляет только объекты, на которые нет ссылок

Вывод

Примитивы — это значения, объекты-обёртки — это сущности в heap, и понимание этого напрямую влияет на производительность и корректность кода.

Уровень

  • Рейтинг:

    5

  • Сложность:

    6

Навыки

  • Java

    Java

Ключевые слова

#heap

#memory

Подпишись на Java Developer в телеграм