Java中经典byte相加的问题

代码:

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行.

解析:

  1. 第三行没问题.

    final修饰的是常量,b6在编译阶段就已经发生的了变化,

  2. 第四行不正确.

    b1,b2是byte类型,Java计算时候会先将他们提升为 int 类型,再进行计算.正确的表达式应该是 : b3 = (byte)(b1+b2)

    是编译阶段错误

知识点 :

Java中byte,short,char在进行计算时候都会提升为int类型

推荐阅读更多精彩内容