public class Test {
public static void main(String[] args) {
int x = 0;
x = x++;
System.out.println(x);
}
}
对于x = x++;这句话的理解,我们先来看看图1-1:
x++在于它自身的值要先参与其他运算(我们也可以理解为x先赋值给左边x的过程),所以x在临时区域(2)中存储了x的值0,然后x在方法区(3)中完成自增后将结果1赋值给x,如(1)的位置。此时,x完成了右边的运算(注意这个时候,右边才算完成运算,但是赋值的x还是右边x的自增并没有赋值给左边的x)。但是,最终需要的还是把临时区域存储的0,如图(2)指向(4)赋值给左边的x。
|
|