日期:2014-05-20  浏览次数:20873 次

i+=j,i=i+j 效率讨论
为什么前者效率更高,底层到底做了些什么?大家来讨论下。

------解决方案--------------------
在Java里讨论没有意义,经过编译器优化后两者在JVM中执行的指令一样。
------解决方案--------------------
无意中路过,也说说我的看法吧.

答案是 i+= j 这种写法效率高.

对效率的看法: 提高的代码的效率很重要。有句话是这么说的:点滴能改变一切.我们可以想想,我们一个地方
不注意,一个地方不注意,那么整体效率就会很低了。

解释:为什么 i+=j 的效率高.

首先咱们先看看 i+=j的情况.

首先在 栈空间中获取 变量 j ,然后在 获取变量 i , 遇到 +=运算 ,那么计算机就会把i的值加上j的值在放入地址映射表中。

而 i = i+j ,需要取得 变量i ,取得变量 j,然后在进行+运算,然后在变量i ,在i+j的值放到地址映射表对应i的位置.

所以一比较, i+=j的效率会比较高.