Встречается на собеседованиях • сегодня
Из каких частей состоит JMM
JMM (Java Memory Model) определяет правила взаимодействия потоков с памятью и состоит из следующих ключевых аспектов:
- Happens-before – гарантирует порядок выполнения операций между потоками. Если A happens-before B, то изменения A видны в B.
- Visibility – изменения переменной, сделанные одним потоком, становятся видимыми другим.
- Atomicity – операции с примитивами (кроме long/double) и volatile-переменными атомарны.
- Reordering – компилятор/процессор может переупорядочивать операции, если это не нарушает happens-before.
- Synchronization – механизмы (synchronized, volatile, final, атомики) обеспечивают корректную работу с памятью.
Пример:
java
class Example {
volatile boolean flag = false;
void writer() {
flag = true; // Запись в volatile
}
void reader() {
if (flag) { // Чтение volatile
System.out.println("Flag is true");
}
}
}Здесь volatile гарантирует видимость изменения flag между потоками.

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