Java中经典byte相加的问题
2018-06-17 本文已影响328人
小林记
代码:
byte b1 = 1 , b2 = 2 , b3 ,b6;
final byte b4 = 4, b5 = 5;
b6 = b4 + b5;
b3 = b1 + b2;
//System.out.print(b3 + b6);
问题:
分析代码中的第 3,4行.
解析:
第三行没问题.
final修饰的是常量,b6在编译阶段就已经发生的了变化,
第四行不正确.
b1,b2是byte类型,Java计算时候会先将他们提升为 int 类型,再进行计算.正确的表达式应该是 : b3 = (byte)(b1+b2)
是编译阶段错误
知识点 :
Java中byte,short,char在进行计算时候都会提升为int类型