JLS $15.7.1. Составной оператор присваивания эквивалентен i = i + i++ и вычисляется соответственно.
Инкремент произойдет после взятия значения из i, но перед присваиванием. Если кому-то интересно, вот opcode:
0: iconst_0
1: istore_1
2: iload_1
3: iload_1
4: iinc 1, 1
7: iadd
8: istore_1
Первые 2 мнемоники - push значения 0 на стек, следующие 2 - pop значения со стека дважды, строка 4 - инкремент, строка 7 - сложение 0+0=0 и push на стек, строка 8 - запись значения из стека
Войдите чтобы поставить Нравится
Войдите чтобы прокомментировать