一、数据类型转换的必要性
Java中不同数据类型的值不能直接进行运算,必须转换为同一类型后才能操作。例如 int
和 double
类型的数据相加时,需要统一类型。
二、隐式转换(自动类型提升)
1. 定义
将取值范围小的数值类型,自动转换为取值范围大的类型。
2. 类型取值范围顺序
byte
→ short
→ int
→ long
→ float
→ double
byte
short char
类型参与运算时按 int
处理
3. 隐式转换规则
-
规则一:不同类型数据混合运算时,自动提升为取值范围最大的类型
int a = 10; double b = 3.14; double result = a + b; // int自动提升为double
-
规则二:
byte
、short
、char
参与运算时,直接提升为int
byte x = 10; short y = 20; int result = x + y; // byte和short自动提升为int
练习:
三、强制转换
1. 定义
如果把一个取值范围大的数值,赋值给取值范围小的变量,是不允许直接赋值的。如果一定要这么做就需要加入强制转换
2. 格式
目标数据类型 变量名 = (目标数据类型)被强转的数据;
3. 使用场景
double a=12.3;
int b = (int) a ;
int a= 300;
byte b =(byte)a; // 可能会发生错误(byte范围:-128~127)
四、对比
转换类型 | 方向 | 安全性 | 操作方式 |
---|---|---|---|
隐式转换 | 小类型 → 大类型 | 安全 | 自动 |
强制转换 | 大类型 → 小类型 | 有风险 | 手动 |