当参数运算的两个变量的数据类型不同,就需要进行隐式的数据类型转换。
转换规则: 优先级满足: 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编译器会对其进行特殊处理,因此能够编译通过