1、面試題:看下面的程序是否有問題,如果有問題,請指出並說明理由。
class DataTypeConversion{
public static void main(String[] args){
byte b1 = 3;
byte b2 = 4;
byte b3 = b1 + b2;
System.out.println(b3);
}
}
從兩個方面:
- byte與byte(或short,char)進行運算的時候會提升爲int,兩個int類型相加的結果頁是int類型
- b1和b2是兩個變量,變量存儲的值是變化,在編譯的時候無法判斷裏面具體的值,相加有可能會超出byte的取值範圍。
2、下面代碼可以正常輸出結果爲:7
class DataTypeConversion{
public static void main(String[] args){
byte b3 = 3 + 4;
System.out.println(b3);
}
}
Java編譯器有常量優化機制,判斷3+4
結果爲7
在byte
的範圍內,所以可以正常編譯通過。
3、當我們直接聲明的值超出byte類型時:
class DataTypeConversion{
public static void main(String[] args){
byte v = 300;
System.out.println(v);
}
}
則會直接報錯:提示我們強制轉換爲byte或直接改變數據類型爲int。
你要去做一個大人,不要回頭,不要難過。