Встречается на собеседованиях • сегодня
Как распределяется память между потоками в JVM
В JVM память делится на общие и приватные области:
-
Общая память (Heap) - доступна всем потокам:
- Heap (куча) - хранит объекты
- Metaspace (раньше PermGen) - метаданные классов
-
Приватная память (Thread Stack) - у каждого потока свой стек:
- Хранит локальные переменные, вызовы методов
- Размер по умолчанию зависит от ОС (обычно 1MB)
- Можно настроить через
-Xss
Пример:
java
public class MemoryExample {
public static void main(String[] args) {
// Объект в куче (общая память)
Object sharedObj = new Object();
new Thread(() -> {
// Локальная переменная в стеке потока
int localVar = 42;
System.out.println(sharedObj + " " + localVar);
}).start();
}
}Важно: при работе с общей памятью нужна синхронизация, так как потоки могут одновременно изменять данные в куче.

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