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

Помнишь ли как работать с volatile

volatile в Java гарантирует видимость изменений переменной для всех потоков. Применяется, когда:

  • переменная изменяется одним потоком, а читается другими;
  • не требуется атомарность операций (например, i++ не атомарен даже с volatile).

Пример:

java
public class VolatileExample {
    private volatile boolean flag = true;

    public void stop() {
        flag = false;
    }

    public void doWork() {
        while (flag) {
            // Работает, пока flag == true
        }
    }
}

Нюансы:

  • Не заменяет synchronized или атомарные классы (AtomicInteger и т.д.) для сложных операций.
  • Запрещает JVM кэшировать значение в регистрах CPU.
  • Гарантирует happens-before для операций чтения/записи.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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