数据类型的转换
数据类型的转换:隐式主题和显式主题
隐式转换(自动类型转换)
隐式转换是指在赋值或表达式计算时,较小范围或精度的数值类型自动转换为较大范围或精度的数值类型。这种转换不需要程序员显式指定,编译器会自动处理。隐式转换通常发生在以下几种情况:
- 从小范围的整数类型到大范围的整数类型,例如:
byte到short、short到int、int到long。 - 从整数类型到浮点类型,例如:任何整数类型到
float或double。 - 从
float到double,因为double的精度高于float。
隐式转换不会丢失信息,因为目标类型的范围或精度总是大于或等于源类型。
显式转换(强制类型转换)
显式转换是指程序员明确指定将数值从一种类型转换为另一种范围更小或精度更低的类型。这种转换需要程序员使用类型转换操作符(类型名称)来完成。显式转换可能会丢失信息,因为目标类型的范围或精度小于源类型。常见的显式转换包括:
- 从大范围的整数类型到小范围的整数类型,例如:
long到int、int到short、short到byte。 - 从浮点类型到整数类型,例如:
double或float到任何整数类型。 - 从
double到float。
显式转换需要程序员谨慎处理,以避免数据丢失或精度损失。
示例代码:
java复制// 隐式转换
byte b = 10;
int i = b; // 自动转换为int类型
// 显式转换
double d = 3.14159;
int iExplicit = (int) d; // 强制转换为int类型,可能会丢失小数部分
注意:
- 在进行显式转换时,如果转换不安全(即目标类型无法表示源类型的值),可能会发生数据丢失或溢出。
- 在Java中,字符类型
char可以隐式转换为整型,因为char类型实际上是一个16位的Unicode码点。 - 在Java中,布尔类型
boolean不能转换为其他数值类型,也不能从其他数值类型转换而来。 - 引用类型的转换通常是通过向上转型(向上造型)和向下转型(向下造型)实现的,这是Java多态性的一部分。向上转型是安全的,而向下转型需要进行类型检查以避免
ClassCastException。

浙公网安备 33010602011771号