码迷,mamicode.com
首页 > 编程语言 > 详细

i=i+1与i+=1的区别及效率(Java)

时间:2017-03-07 22:53:41      阅读:320      评论:0      收藏:0      [点我收藏+]

标签:相同   区别   类型   自增   转换   地址   博客   效率   http   

原博客地址


在做个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的区别及效率(Java)

标签:相同   区别   类型   自增   转换   地址   博客   效率   http   

原文地址:http://www.cnblogs.com/oskyhg/p/6516969.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!