Какие операции происходят при выполнении инкремента

«Какие операции происходят при выполнении инкремента» — вопрос из категории Java, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

var i = 0
i++

Инкремент (i++) включает:

  1. Чтение текущего значения переменной (0)
  2. Запись нового значения (1)
  3. Возврат старого значения (постфиксная форма)

Для префиксной формы (++i):

  1. Чтение значения
  2. Инкремент
  3. Возврат нового значения

В Java/Kotlin это атомарная операция для примитивов. Для не-volatile полей класса возможны race condition'ы в многопоточной среде. Для thread-safe инкремента используйте AtomicInteger:

val atomicInt = AtomicInteger(0)
atomicInt.incrementAndGet()