++i和i++
在解释这两个运算之前,先引入局部变量表和操作数栈。
i++的通俗的解释即是先赋值再自增,其实这里赋值的值是从操作数栈取的值,也就是说先将i的值压入栈中,
而自增是局部变量表的值自增。
而++i则相反,是先自增后赋值,就是局部变量表的自增,然后把局部变量表的值压入栈中。
现在我们用一道经典题来从底层原理解释这两个运算操作
参考链接
https://blog.csdn.net/wenchangwenliu/article/details/104564555
public class Test3 {
public static void main(String[] args) {
int y=0;
//注意"="是赋值,"=="才是相等
//这里的y=++y 是先运算在赋值,先运算++y完了后y的值是1,然后在赋值给原来等于0的y
y=++y;// y==0,++y==y+1; 结果y=++y == y+1 == 0+1 ==1
y=++y;// y=