数据类型表示的范围 从小到大
byte(1) < short(2) < int(4) < long(8) < float(4) < double(8)
char(2)
boolean (1)类型 不参与其他几种基本类型的排序比较。
运算时的隐式转换:
凡是小于等于int类型的数据类型在运算的时候,一律自动转换为int进行计算
1.byte+byte ,结果自动转换为int类型:
byte a = 1;
byte b = 2;
int i = a + b;
2.byte+short ,同上
3.int + byte 同上
4.int + short 同上
5.int + char 同上(char类型在参与运算的时候,根据ASCII表获得值进行计算)
一个大的数据类型加一个小的数据类型,结果一定是大的数据类型
1.int+float 结果自动向上转换为float
int a = 10;
float b = 3.14f;
float v = a + b;
其他的也类似,参与运算,向上自动转换
当范围小于等于int类型的值运算时,由于自动转换为int,所以不能直接使用 b = a+b;需要强制转换或者使用 +=运算
byte a = 1;
byte b = 2;
// b = a+b; 编译错误,运算时a,b均转换为int类型
b += a; //底层自动实现强制转换,即 b = (byte)(a+b) ;