java的强制数据转换
java作为一个强类型编程语言,当不同类型之间的变量相互赋值的时候,
就会有较为严格的校验。
一、数据类型转换
不同数据类型的变量之间赋值,表示范围更小的类型能隐式转换成范围较大的类型,反之则不行。
1.int和long/double相互赋值
int a = 10;
long b = 100L;
a = b; //编译出错,提示会损失精度
b = a; //编译通过
int a = 10;
double b = 1.0;
a = b; //编译出错,提示会损失精度
b = a; //编译通过
long和double的范围更大,所以可以把int赋值给long、double,但不能把long或double赋值给int,原因是会损失精度。
2.int和boolean相互赋值
int a = 10;
boolean b = true;
a = b; //编译出错,不兼容
b = a; //编译出错,不兼容
int和boolean是不兼容的两种类型,不能相互赋值。
3.int字面值常量给byte赋值
byte a = 10; //编译通过
byte b = 128; //编译出错,提示从int转换到byte可能会有损失
需要注意byte的取值范围,128已经超出了这个范围。使用字面值常量赋值的