自增变量的具体过程
自增变量的具体过程涉及到对栈的理解,如果没有对栈的基础知识可以看看别的博客,基础就好。
具体的过程我们使用一个问题来解答,这个问题也是Java面试的频繁题目。
public static void main(String[] args) {
int i = 1;
i = i++;
int j = i++;
int k = i + ++i * i++;
System.out.println(i);
System.out.println(j);
System.out.println(k);
}
该代码的最终结果是
我们开始一步一步解释代码的含义。
int i = 1;
创建一个int类型的变量i,并且为i赋值等于1
i=i++;
这句开始就有点烧脑了,可以知道代码是先计算等号右边的会使用操作数栈来进行计算,也就是i++,下面开始逐步解释。
此时i还未进行自增,要对 i 进行操作放入操作数栈当中,进行自增后局部变量i自增为2,可见下图