AJPFX簡述i=i+1與i+=1及x++的區別和效率

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

相關文章
相關標籤/搜索