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

Зачем нужен Volatile

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

Основные свойства:

  • Гарантирует атомарность чтения/записи (для long/double).
  • Запрещает переупорядочивание операций компилятором/процессором.

Пример:

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

    public void toggleFlag() {
        flag = !flag; // Не атомарно! Но изменения видны сразу.
    }
}

Когда использовать:

  • Для простых флагов или состояний (например, остановка потока).
  • Если переменная записывается одним потоком, а читается многими.

Не подходит:

  • Для сложных операций (например, инкремент i++), где нужна атомарность — используйте AtomicInteger или synchronized.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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