i=i+1与i+=1及x++的区别和效率ide
1.x=x+1,x+=1及x++的效率哪一个最高?为何?编译器
x=x+1最低,由于它的执行以下。it
(1)读取右x的地址;编译
(2)x+1;class
(3)读取左x的地址;效率
(4)将右值传给左边的x(编译器并不认为左右x的地址相同)。di
x+=1其次,它的执行以下。view
(1)读取x的地址;vi
(2)x+1;co
(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