【常见面试题】java自增 i++与++i

1. 先上结论

在工作中,避免使用复杂的++自增,容易造成混乱。不如直接+1,清晰明了,不容易出bug。此题最大的意义就是面试

  1. 赋值=,最后计算

  2. =右边的从左到右加载值依次压入操作数栈

  3. 实际先算哪个,看运算符优先级

  4. 自增、自减操作都是直接修改变量的值,不经过操作数栈

  5. 最后的赋值之前,临时结果也是存储在操作数栈中

建议:《JVM虚拟机规范》关于指令的部分

2. 测试代码

public class AutoIncrement {
    public static void main(String[] args) {
        int i = 1;
        i = i++;
        int j = i++;
        int k = i + ++i * i++;
        System.out.println("i=" + i);    // i=4
        System.out.println("j=" + j);        // j=1
        System.out.println("k=" + k);        // k=11
    }
}

输出结果

i=4

j=1

k=11

posted on 2022-05-21 16:35  小石头小祖宗  阅读(20)  评论(0编辑  收藏  举报  来源

导航