1.1、i++
int i=0;
for(int j=0;i<50;j++){
i=i++;
}
------编译后指令------- //通过:javap 类名.class 反解析
iload_0 将局部变量表slot=0的变量(i),加载到操作数栈上
iinc 对局部变量表slot=0的变量(i)直接加1,但是操作数栈还是0
istore_o 将栈顶元素出栈赋值给局部变量表slot=0的变量。 //此时,局部变量i又被赋值为0
1.2、++i
iinc
iload_0
istore_o
//先对局部变量表+1,然后加载到操作数栈,然后出栈赋值给局部变量表。
1.3、复杂的情况
int i=0;
i=i++ + ++i;
------编译后指令-------
iload_0 //0压入栈顶
iinc //局部变量+1 值:1
iinc //局部变量+1 值:2
iload_0 //2压入栈顶
iadd //计算0+2的值
istore_o //将2返回局部变量表