理解类型转换
Java 作为一个强类型编程语言, 当不同类型之间的变量相互赋值的时候, 会有严格的校验。
先看以下几个代码场景:
int 和 long/double 相互赋值
int a = 10;
long b = 20;
a = b; // 编译出错, 提示可能会损失精度.
b = a; // 编译通过.
int a = 10;
double b = 1.0;
a = b; // 编译出错, 提示可能会损失精度.
b = a; // 编译通过
long 表示的范围更大, 可以将 int 赋值给 long, 但是不能将 long 赋值给 int。
double 表示的范围更大, 可以将 int 赋值给 double, 但是不能将 double 赋值给 int。
结论: 不同数字类型的变量之间赋值, 表示范围更小的类型能隐式转换成范围较大的类型, 反之则不行。
int 和 boolean 相互赋值
int a = 10;
boolean b = true;
b = a; // 编译出错, 提示不兼容的类型
a = b; // 编译出错, 提示不兼容的类型
结论: int 和 boolean 是毫不相干的两种类型, 不能相互赋值。boolean类型数据和其他七种不能互相转换。
int字面值常量 给 byte 赋值