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

Что говорит ключевое слово volatile Java коду

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

Пример:

java
public class SharedObject {
    private volatile boolean flag = false;

    public void toggleFlag() {
        flag = !flag; // Запись в volatile
    }

    public void doWork() {
        while (!flag) { // Чтение из volatile
            // Ждём изменения флага
        }
        System.out.println("Flag changed!");
    }
}

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

  • Гарантирует атомарность для примитивов (кроме long/double до Java 5)
  • Не заменяет synchronized (не обеспечивает атомарность составных операций)
  • Используется для простых флагов или состояний
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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