Встречается на собеседованиях • сегодня
Как устроена AtomicReference
AtomicReference обеспечивает атомарные операции чтения и записи ссылочных переменных. Внутри использует `volatile` поле и методы `compareAndSwap` (CAS) из `Unsafe` для обеспечения потокобезопасности.
Пример:
```java
AtomicReference ref = new AtomicReference<>("initial");
// Атомарное обновление
ref.compareAndSet("initial", "updated"); // true, если текущее значение == expected
// Лямбда-обновление
ref.updateAndGet(val -> val + "!");
```
Ключевые особенности:
- Гарантирует видимость изменений между потоками (happens-before)
- Оптимистичная блокировка через CAS вместо synchronized
- Методы `get()`, `set()` работают как с volatile
- `compareAndSet()` - атомарная замена если текущее значение == ожидаемое
Используется для неблокирующих алгоритмов и реализации атомарных структур.

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