代碼:
byte b1 = 1 , b2 = 2 , b3 ,b6;
final byte b4 = 4, b5 = 5;
b6 = b4 + b5;
b3 = b1 + b2;
//System.out.print(b3 + b6);
問(wèn)題:
分析代碼中的第 3,4行.
解析:
第三行沒(méi)問(wèn)題.
final修飾的是常量,b6在編譯階段就已經(jīng)發(fā)生的了變化,
第四行不正確.
b1,b2是byte類型,Java計(jì)算時(shí)候會(huì)先將他們提升為 int 類型,再進(jìn)行計(jì)算.正確的表達(dá)式應(yīng)該是 : b3 = (byte)(b1+b2)
是編譯階段錯(cuò)誤
知識(shí)點(diǎn) :
Java中byte,short,char在進(jìn)行計(jì)算時(shí)候都會(huì)提升為int類型