一、自动类型转换
自动类型转换,基本上是容量小的数据类型向容量大的数据类型转换
char,byte,short → int → long → double(注意前面的三个没有什么自动类型转换关系)注意,下面的代码值得注意
short ss1 = 12;
byte bb1 = 1;
char cc1 = 'a';
short ss2 = ss1 + bb1; // 这句语句会报错
char cc2 = cc1 + bb1; // 这句语句也会报错
int ii1 = cc1 + bb1; // 不会报错
int ii2 = ss1 + bb1; // 不会报错
总结:当char/byte/short 三者间进行运算的时候,默认结果为int类型。相同的两个类型运算的结果也是默认int类型。例如 int ii3 = ss1 + ss2;
二、强制类型转换
- 容量大的数据类型转换为容量小的数据类型,使用强制类型转换符号()
long l1 = 123456l;
int m1 = (int)l1;
强制类型转换的问题是,导致精度的损失,因为转换时到位的丢失。