И a++
, и a=a+1
присваивают новое значение a
.
a+1
- нет: оно просто на 1 больше значения в a
.
Оценка утверждений:
System.out.println(a);
System.out.println(a+1);
System.out.println(a);
покажет, что значение a
одинаково до и после.Если сделать то же самое с a++
или a=a+1
в среднем выражении (очевидно, сначала сделав a
не финальным), то вы увидите, что a
изменился.
Это не должно быть более удивительным, чем System.out.println(5+1)
печать 6, при этом значения 5
и 1
остаются без изменений.