Java的基本类型在运算时会自动提升
1、操作数中有double、float、long的时候,按照最高的类型进行转换
double a = 1.0;
int b = 3;
那么 a+b 为double型
2、如果没有这几种,则byte、char、short都转化为int
byte a = 1;
byte b = -2;
那么 a+b 为int型
3、final修饰的变量不会转换类型,但是进行操作的时候,操作结果依据左操作数的类型进行转换
byte a = 1;
final byte b = 2;
那么 a+b 为int型(虽然b不会改变类型,依据左边的a的类型而定结果类型,但是a会自动提升为int型)