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都爲變量,不確定具體的值是多少
//所以如果數值過大的話,就會導致精度丟失