1 类型转换
- 自动类型转换
- 强制类型转换
1.1 隐式转换
把一个表示数据范围小的数值或者变量赋值给另一个表示数据范围大的变量。
double num = 10; // 将int类型的10直接赋值给double类型
System.out.println(num); // 输出10.0
类型从小到大关系图:
-
整数默认是int类型,byte、short和char类型数据参与运算均会自动转换为int类型。
-
boolean类型不能与其他基本数据类型相互转换。
1.2 强制转换
把一个表示数据范围大的数值或者变量赋值给另一个表示数据范围小的变量。
强制类型转换格式:数据类型 变量名 = (数据类型) 值或者变量;
1.3 类型转换
案例代码:
byte a = 3;
byte b = 4;
byte c = a + b; //错误。因为两个byte变量相加,会先提升为int类型
byte d = 3 + 4; //正确。常量优化机制
常量优化机制:
在编译时,整数常量的计算会直接算出结果,并且会自动判断该结果是否在byte取值范围内:
在:编译通过
不在:编译失败