Встречается на собеседованиях • сегодня
В чем разница между областями памяти в Java
В Java есть несколько областей памяти:
-
Heap (куча) - хранит объекты и массивы. Разделяется на:
- Young Generation (Eden, Survivor 0/1) - для новых объектов
- Old Generation - для долгоживущих объектов
-
Stack (стек) - хранит примитивы и ссылки на объекты для каждого потока. Каждый вызов метода создает новый фрейм.
-
Metaspace (бывший PermGen) - хранит метаданные классов (с Java 8)
-
Native Memory - используется JVM для своих нужд
Пример:
java
void method() {
int x = 5; // в стеке
Object obj = new Object(); // объект в куче, ссылка в стеке
}Ключевые отличия:
- Heap общий для всех потоков, Stack - свой для каждого
- Stack автоматически очищается при завершении метода, Heap - GC
- Stack ограничен по размеру, Heap может расти

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы