不懂字节码也能看懂的i++和++i运行原理分析
2023-05-16 22:11 作者:喵莉樱Nyayurn | 我要投稿
int i = 0;
int j = i++ + ++i;
System.out.println(j); // 2
模拟一下字节码的运行

可以看到i++的操作步骤就是先把i放入操作数栈,然后再将i自增
而++i其实就是先自增后放入操作数栈
再看一个案例:
int i = 0;
i = ++i;
i = 0;
i = i++;
同上,i = ++i因为先自增,所以在操作数栈内的值也是1,最后赋值i也是1
i = i++因为后自增,操作数栈内的值是0,所以最后赋值时i是0