public class MTest {
public static void main(String[] args) {
int m = 100;
m = m++;
}
}
//结果是 100
通过javap -c 命令查看字节码指令如下
javap -c Mtest.class
0: bipush 100 将常量池数据100压栈到 操作数栈 2: istore_1 弹出栈顶元素100 放到局部变量表下标为1 的位置 3: iload_1 将局部变量表下标为1的数据 放到操作数栈 操作数栈 栈顶元素为100 4:iinc 局部变量表数据自增1 7:弹出操作数栈顶元素赋值给m 8:结束i=++i;
public class MTest {
public static void main(String[] args) {
int m = 100;
m = ++m;
//结果是101
}
}
通过javap命令查看字节码后
javap -c Mtest.class
0: bipush 100 将常量100 压到操作数栈 2: istore_1 将100弹栈放到局部变量表 3: iinc 局部变量表 自增1 6: iload_1 局部变量表下标为1的数据放一份到操作数栈 操作数栈顶值为101 7: istore_1 弹栈 赋值给m 8: return 结束操作



