天天看點

java的++i和i++

java中存在自增或自減運算符,++可以放到變量的前面,也可以放到變量的後面。從了解上講,我們可以認為++i是先進行的運算,然後進行的指派;i++是先指派,然後進行的運算;那麼如下的情況:

int i=5;

i=i++;此時i的結果應該是?---》5

其實在運算的時候,“=”運算符的優先級别是很低的,記憶體中還是先做等号右邊的操作,隻不過i++的時候,會儲存一份i的原始值,做指派操作用。

byte a = 5;

a=5+3;//1、編譯正常,編譯器在編譯的時候,先做等号右邊的運算,結果為int類型的8,

//8在byte的表示範圍内,編譯器會有一個強轉的過程

byte b = 3;

//byte c = a+b;//2、編譯錯誤,因為a+b運算為int類型,同時a和b都為變量,不确定具體的值是多少

//是以如果數值過大的話,就會導緻精度丢失