int i=0; i=i++;
解释下为什么i=0
javap -v 字节码文件名 查看Class指令 得到虚拟机的操作码如下:
0: iconst_0 //将一个int型常量 0 压入栈 1: istore_1 //从栈顶弹出int型的值,然后将其存储到局部变量表1的位置(0的位置都是被this占用) 2: iload_1 //将局部变量表位置1处的int型的值压入栈 3: iinc 1, 1 //局部变量表位置1处的局部变量自增1 6: istore_1 //从栈顶弹出int型的值,然后将其存储到局部变量表1的位置
附上一张图帮助理解: