Встречается на собеседованиях • сегодня
Может ли Java-приложение занимать больше оперативной памяти, чем размер Heap
Да, может. Помимо Heap (кучи), Java-приложение использует память под:
1. **Metaspace/PermGen** – хранение метаданных классов (ранее PermGen до Java 8).
2. **Stack** – стеки потоков (Thread Stack).
3. **Native Memory** – память, выделяемая JNI, буферы (например, DirectByteBuffer), сборщик мусора и JIT-компилятор.
4. **Off-Heap** – например, кэши вне кучи (Ehcache, Hazelcast).
Пример с `DirectByteBuffer`:
```java
ByteBuffer buffer = ByteBuffer.allocateDirect(1024 * 1024 * 500); // 500MB вне кучи
```
Общий потребляемый объем = Heap + Off-Heap + Stack + Metaspace + Native. Мониторить можно через `jcmd VM.native_memory`.

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