i=i+1与i+=1的区别及效率

Posted 我爱钻研

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了i=i+1与i+=1的区别及效率相关的知识,希望对你有一定的参考价值。

 

在做个java优化的PPT时,看到了i=i+1与i+=1的区别,在这之前还真没想到那么细。

1.x=x+1,x+=1及x++的效率哪个最高?为什么?

x=x+1最低,因为它的执行如下。

(1)读取右x的地址;

(2)x+1;

(3)读取左x的地址;

(4)将右值传给左边的x(编译器并不认为左右x的地址相同)。

x+=1其次,它的执行如下。

(1)读取x的地址;

(2)x+1;

(3)将得到的值传给x(因为x的地址已经读出)。

x++最高,它的执行如下。

(1)读取右x的地址;

(2)x自增1.

 

2.x=x+1,和 x+=1; 在什么情况下不成立 而且 x=x+1 是错误的; (类型隐式转换)

short x=1;
x+=1;
x=x+1; //因为 x是 short 类型 .当它+1 会自动转变成int 当是等于又 是 short 类型..所以会报错;

 

3.x=x+1,和 x+=1; 在什么情况下不成立 而且 x+=1 是错误的;
Object x="abc";
String y="def";
x+=y;
x=x+y

 
 

以上是关于i=i+1与i+=1的区别及效率的主要内容,如果未能解决你的问题,请参考以下文章

C/C++ 灵魂拷问:++i 与 i++ 哪个执行效率高,有何区别?

++i和i++的区别

epoll与selectpoll区别

一道题浅析 i++,++i,i+1及(引用)&i的区别

forforeach和Iterator遍历有什么(效率)区别

Python中i = i + 1与i + = 1的区别