A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

(1) i = i + 1 它的效率最低,因为其执行过程如下:
1-1 读取右x的地址;
1-2 x + 1;
1-3 读取左x的地址;
1-4 将右值传给左边的x


(2) i += 1; 他的执行过程是:
2-1 读取右x的地址;
2-2 x + 1;
2-3 将得到的值传给x


(3) i++; 他的执行过程是:
3-1 读取右x的地址;
3-2 x自增1;

总结:
++i 最快
i++ 次之,比++i多用一个临时变量
i += 1 第三,需要取地址
i = i + 1 最后,并多用一个临时变量
理论上是这样的 不知道对不对 有待验证…..

评分

参与人数 1技术分 +1 收起 理由
谭立文 + 1

查看全部评分

3 个回复

倒序浏览
这涉及汇编了,为了考试我苦学了半个月,菜的不行。。。
回复 使用道具 举报
我查看了下资料,可以用javap -c Test.class 命令看一下字节码,肯定能得到答案的,希望对你有帮助
靠别人不如靠自己,哈哈,共同研究
字节码含义:http://jarg.iteye.com/blog/1011736
javap命令用法:http://chenhua-1984.iteye.com/blog/423389
回复 使用道具 举报
i=i+1  肯定最慢。因为涉及到了运算
i+=1;这会直接赋值  所以比前者稍微快点。
至于 i++  和++i 谁的效率高,我也就不清楚了。同求解
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马