public static void main(String[] args) {
int i = 1;
i = i++;
/**
* 1、先把i值压入操作数栈
* 2、变量i自增1 局部变量i为2
* 3、将操作数栈中的值赋值给i (覆盖)
* 4、i的结果为1
* */
int j = i++;
/**
* 1、先把i值压入操作数栈
* 2、变量i自增1 局部变量i为2
* 3、将操作数栈中的值赋值给j
* 4、j的结果为1,变量i的结果为2 (自增未覆盖)
* */
int k = i + ++i * i++;
/**
* 1、先把i值压入操作数栈 值为2
* 2、先运算(++i * i++)
* 3、++i 变量i先自增1(局部变量i为3) 并将3压入操作数栈中
* 4、i++ 局部变量i为3 将3压入操作数栈中 变量i自增1(局部变量i为4)
* 5、将操作数栈中的前两个弹出求乘积结果压入栈中 ++i*i++ 即3*3 = 9
* 6、将操作数栈中的值弹出求和 即2+3 = 11
* 7、将11赋值给k
* */
System.out.println("i="+i);
System.out.println("j="+j);
System.out.println("k="+k);
/**
* 结果:
* i=4
* j=1
* k=11
*/
}