Встречается на собеседованиях • сегодня

Что такое volatile в Java

Ключевое слово volatile в Java гарантирует видимость изменений переменной для всех потоков. Оно предотвращает кэширование переменной в регистрах процессора, обеспечивая чтение из основной памяти.

Основные особенности:

  • Атомарность чтения/записи (но не операций типа increment)
  • Запрет реордеринга операций компилятором
  • Гарантия happens-before для других потоков

Пример:

java
class Shared {
    volatile boolean flag = false;
    
    void toggle() {
        flag = !flag; // Не атомарно!
    }
}

Используется для:

  • Флагов завершения работы потоков
  • Простых shared-переменных без сложных инвариантов

Не заменяет synchronized для сложных операций! Для атомарных операций лучше использовать Atomic-классы.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы