经典面试案列:
public static void main(String[] args) {
int i = 1;
i = i++; //i=1
int j = i++; //j=1, i=2
int k = i + ++i * i++; //i=4, k=11
System.out.println("i=" +i);
System.out.println("j=" +j);
System.out.println("k=" +k);
}
核心知识点
- 赋值=,最后计算
- =右边的从左到右加载值依次压入操作数栈
- 实际先算哪个,看运算符优先级
- 自增自减操作都是直接修改变量的值,不经过操作数栈
- 最后的赋值之前,临时结果也是存储在操作数栈中