1. 程式人生 > >java中 byte相加會生成int

java中 byte相加會生成int

最近在刷題時看到了如下題目:

 public static void main(String[] args) {
        byte b1 = 1,b2=2,b3,b6;
        final byte b4=3,b5=4;
        b6=b4+b5;
        b3=b1+b2;
        System.out.println(b3+""+b6);

    }

這裡在b3賦值時會編譯報錯。查了資料發現,byte進行變數之間的計算時是會將型別提升到int進行計算,int確實不能直接賦值給byte,需要強轉。
b6同樣被兩個byte賦值了,為什麼它不報錯?原因就在於final,聲明後它就是一個常量,在這裡b4可以替換成3,b5替換成4。那麼替換完了就是這樣的:

    b6=3+4  //不涉及型別提升,此處不會報錯。