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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 小米哥 中级黑马   /  2016-2-28 23:38  /  834 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


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

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

1 个回复

倒序浏览
这个好 现在总算是明白了 测试下的确是这样的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马