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的位置
附上一张图帮助理解:
所以i=0,很好理解了