当参数运算的两个变量的数据类型不同,就需要进行隐式的数据类型转换

   转换规则: 优先级满足: byte < short < char < int < long < float < double

 

当优先级高的传优先级低的数据类型时,需要强制类型转换。强制类型转换可能会损失数据精度。

当char转换为int,long时, 转换为对应的ascii码。

基本数据类型与boolean不能互相转换。

int a = 0;
float f = a;   // 整型可以自动转换为float类型, 隐式的自动类型转换
double dd = f; // 浮点类型可以自动转换为double类型
        
f = (float)dd;  // 强制类型转换
a = (int)f;     // 强制类型转换

char c = 'a';
a = c;  // 转换为对应的ascii码


short si = 127;
//si = si + 1;  // 编译错误
si += 1;  // 没有编译错误, +=是java语言规定的运算符,java编译器会对其进行特殊处理,因此能够编译通过