基本數據類型之間的運算
相同數據類型之間
相同數據類型之間計算, 得到的一定是這個數據類型
int + int = int
不同數據類型之間
首先, 把小的數據類型自動轉換成大的數據類型, 然后再進行計算, 得到的結果一定是大的數據類型.
int + long = long
特殊的byte, short, char
在計算的時候,首先會轉化成int類型然后再進行計算. 這樣是安全的.
byte + byte = int
結果至少是int
結論:
在執行算數運算的時候. byte, short 會自動的轉化成int然后再進行計算.
如果不同數據類型之間進行計算. 比如int+long. 此時, 程序會自動的把int轉化成long. 然后再進行計算. 所以結果一定是大的數據類型
惡心人的題:
short s1 = 1; short s2 = s1 + 1; System.out.println(s2);
解析: 此時第2行代碼一定會報錯. 因為s1是short類型. 而short類型計算的時候會自動轉換成int進行計算. 並且. 所有的數字. 默認都可以看做是int類型. 默認的小數都可以看做是double類型. 所以第二行計算的結果應該是int類型. 把int類型的數據賦值給short類型的變量. 一定會報錯的. 此處必須要進行強制類型轉換
short s1 = 1; short s2 = (short) (s1 + 1); System.out.println(s2);