1. 程式人生 > >作為一個剛學JAVA兩個月的菜鳥,先寫一些筆記吧01

作為一個剛學JAVA兩個月的菜鳥,先寫一些筆記吧01

**

作為一個剛學JAVA兩個月的菜鳥,先寫一些筆記吧

**

+=符號的擴充套件

short s = 1;
s += 1;
分析:s += 1 邏輯上看作是 s = s + 1 計算結果被提升為int型別,再向short型別賦值時發生錯誤,因為不能將取值範圍大的型別賦值到取值範圍小的型別。
	但是, s=s+1進行兩次運算 ,而 += 是一個運算子,只運算一次,並帶有強制轉換的特點,
	也就是說 s += 1 就是 s = (short)(s + 1) ,因此程式沒有問題編譯通過,執行結果是2.

常量和變數運算的擴充套件

byte b1=1;
byte b2=2;
byte b3=1 + 2;
byte b4=b1 + b2;
分析:b3 = 1 + 2 , 1 和 2 是常量,為固定不變的資料,在編譯的時候(編譯器javac),已經確定了 1+2 的結果並沒
	有超過byte型別的取值範圍,可以賦值給變數 b3 ,因此 b3=1 + 2 是正確的。
	反之, b4 = b2 + b3 , b2 和 b3 是變數,變數的值是可能變化的,在編譯的時候,編譯器javac不確定b2+b3的結果是什麼,
	因此會將結果以int型別進行處理,所以int型別不能賦值給byte型別,因此編譯失敗。