i=i++

来源:互联网 发布:魔镜淘宝助手插件下载 编辑:程序博客网 时间:2024/06/06 12:40
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,很好理解了







原创粉丝点击