上圖爲課件截圖
根據上圖意思 不同數值型變量 運算時 容量小的數據類型會自動轉爲 容量大的數據類型,數據類型容量如下圖:
按照以上解釋 個人理解爲 byte
類型容量 1字節 short
2字節 則兩種數據類型運算 結果應該時 short
類型數據
但是運行下邊代碼時 出錯
package com.company;
public class Main {
public static void main(String[] args) {
byte b = 1;
short s = 12;
short s2 = b + s;
System.out.println(s2);
}
}
異常:
原因: 數值型的 數據類型 運算的結果默認是 int
類型數據,所以s2 聲明爲 short 時不行的
數字類型的運算規則:
- 1、有多種類型的數據混合運算時,系統首先自動將所有數據轉換成容量最大的那種數據類型,然後再進行計算。數字類型的從小到大分別是byte、short、int、long、float、double。
- 2、數字類型的運算中,多個相同類型變量參與的運算,變量要先轉換爲相對應的數據類型的默認類型(比如兩個byte類型的變量相加,會先把兩個byte類型的變量轉換成默認的int類型之後再計算,得到的結果是int類型)。這種情況適用於變量的數據類型的容量比默認類型的容量小,(比如byte,short,都比int小)
- 3、byte,short,char之間不會相互轉換,他們三者在計算時首先轉換爲int類型。