1.当容量小的数据类型与容量大的数据类型做运算时,结果自动转换为容量大的数据类型
2.8种数据类型的自动提升不包含boolean类型
3.特别的是当byte/short/char类型之间做运算时为结果都为int类型
byte b1 = 1;
byte b2 = 2;
byte b3 = b1+b2;//编译不通过,结果为int型必须用int或比int型容量大的类型接收
byte b3 = b1+c1;//编译不同过,与上面错误相同
short s1 = 1;
short s2 = 2;
short s3 = s1+s2;//编译不通过,与上述错误相同
short s3 = s1+b1;//编译不通过,与上述错误相同
short s3 = s1+c1;//编译不通过,与上面错误相同
//c1和c2定义在了下面,我这写法不对,大家理解意思就好
char c1 = 'a';
char c2 = 'b';
char c3 = c1+c2;//编译不通过,与上述错误相同
char c3 = c1+b1;//编译不通过,与上述错误相同
总结:byte,short,char–>int–>long–>float->double