当一个java算术表达式中包含多个基本类型的值时,整个算术表达式的数据类型将发生自动提升。Java定义如下的自动提升规则:
1. 所有byte型、short型和char型将被提升到int型。
2. 整个算术表达式的数据类型自动提升到与表达式中最高等级操作数同样的类型。操作数的等级排列如下图所示,位于箭头右边类型的等级高于位于箭头左边类型的等级。
byte b1 = 3;
byte b2 = 4;
byte b3 =b1+b2; x
在运算期间,b1和b2被自动提升为int
byte b3 =(byte)b1+b2;