控制台输出结果为:0
控制台输出结果为:100
Java使用中间变量缓存机制。执行自增运算时,会为每一个自增操作分配一个临时变量,如果是前缀加(++i),就会“先自加1后赋值(给临时变量)”;如果是后缀加(i++),就会“先赋值(给临时变量)后自加1”。运算最终使用的,并不是变量本身,而是被赋予了值的临时变量。
j=j++;两个操作:赋值,自增。赋值可以分解为两个操作:读出一个值(到缓存),将该值赋给变量。即:
1、读取变量j的值到缓存;
2、改变变量j的值为缓存;
3、改变变量j的值,将其增1.
但是在java中,上述语句实际操作顺序为:1-3-2
所以:
1、读取变量j的值(0)到缓存;
2、改变变量j的值,将其增1.
3、改变变量j的值为缓存(0);