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

Как работает под капотом AtomicInteger

AtomicInteger использует комбинацию volatile переменной и CAS (Compare-And-Swap) операций для обеспечения атомарности без блокировок.

Внутри содержит:

java
private volatile int value;

Основные методы (например incrementAndGet()) используют Unsafe класс для CAS:

java
public final int incrementAndGet() {
    return unsafe.getAndAddInt(this, valueOffset, 1) + 1;
}

CAS-механизм:

  1. Читает текущее значение (expectedValue)
  2. Вычисляет новое значение (newValue)
  3. Если expectedValue совпадает с актуальным значением в памяти — обновляет его на newValue
  4. Если нет — повторяет операцию (spin loop)

Преимущество перед synchronized — отсутствие блокировок, что повышает производительность в многопоточной среде.

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

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

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

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