面试题:自增变量

关于自增变量的一道面试题

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

结果:

i = 4
j = 1
k = 11

分析:

弄清楚局部变量表和操作数对变量的存储即可

总结:

  • 赋值=,最后计算
  • =右边的从左到右加载值依次压入操作数栈
  • 实际先算哪个看运算符优先级
  • 自增、自减操作都是直接修改变量的值,不经过操作数栈
  • 最后的赋值之前,临时结果也是保存在操作数栈中
posted @ 2020-03-08 19:47  农夫三拳有点疼~  阅读(247)  评论(0编辑  收藏  举报