1、执行运算指令时,压入操作数栈的顺序不受运算优先级影响
2、i++ 先将i值压入到操作数栈,再在局部变量表自增
3、++i 先在局部变量表自增,再压入到操作数栈
记忆方法:i的先后,表示压入操作数栈的先后。
看如下例子,试着分析
public static void main(String[] args) {
int i = 1;
//局1操1 + 局2操1;局3操3; 1 + 1 * 3 = 4
int j = i + (i++) * (++i);
System.out.println(j);
//局3操3,局4操4;局5操4; 3 + 4 * 4 = 19
int k = i + (++i) * (i++);
System.out.println(k);
}
结果: