Встречается на собеседованиях • сегодня
Как устроена память в JVM
JVM память разделена на несколько областей:
-
Heap (куча) - хранит объекты и массивы. Делится на:
- Young Generation (Eden + Survivor spaces)
- Old Generation (Tenured space)
-
Stack (стек) - хранит локальные переменные и вызовы методов (по одному стеку на поток)
-
Metaspace (ранее PermGen) - хранит метаданные классов (с Java 8)
-
Native Memory - используется JVM для внутренних нужд
Пример работы с кучей:
java
Object obj = new Object(); // создается в куче
String str = "Hello"; // строка в пуле строк (часть кучи)Ключевые особенности:
- Сборка мусора работает преимущественно в куче
- Stack работает по принципу LIFO
- Metaspace динамически расширяется в пределах доступной памяти
- OutOfMemoryError возникает при переполнении кучи, StackOverflowError - при переполнении стека

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