【常见面试题】java自增 i++与++i
- CSND博客: java自增i++与++i
- 码云源码: lishuoboy-interview
1. 先上结论
在工作中,避免使用复杂的++自增,容易造成混乱。不如直接+1,清晰明了,不容易出bug。此题最大的意义就是面试
-
赋值=,最后计算
-
=右边的从左到右加载值依次压入操作数栈
-
实际先算哪个,看运算符优先级
-
自增、自减操作都是直接修改变量的值,不经过操作数栈
-
最后的赋值之前,临时结果也是存储在操作数栈中
建议:《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