类型转换
类型转换简介
类型转换,也称为类型强制转换,是在 Java 中将一个值从一种数据类型转换为另一种数据类型的过程。
类型转换的种类
graph TD
A[类型转换] --> B[隐式转换]
A --> C[显式转换]
隐式(拓宽)转换
源类型 |
目标类型 |
转换类型 |
byte |
short、int、long、float、double |
自动 |
short |
int、long、float、double |
自动 |
char |
int、long、float、double |
自动 |
int |
long、float、double |
自动 |
long |
float、double |
自动 |
float |
double |
自动 |
显式(缩窄)转换
源类型 |
目标类型 |
转换方法 |
double |
float、long、int、short、char、byte |
强制转换 |
float |
long、int、short、char、byte |
强制转换 |
long |
int、short、char、byte |
强制转换 |
int |
short、char、byte |
强制转换 |
代码示例:隐式转换
public class ImplicitConversionDemo {
public static void main(String[] args) {
// 从 int 到 long 的隐式转换
int intValue = 100;
long longValue = intValue;
// 从 int 到 double 的隐式转换
int number = 500;
double doubleNumber = number;
System.out.println("Int 到 Long: " + longValue);
System.out.println("Int 到 Double: " + doubleNumber);
}
}
代码示例:显式转换
public class ExplicitConversionDemo {
public static void main(String[] args) {
// 从 double 到 int 的显式转换
double doubleValue = 3.14;
int intValue = (int) doubleValue;
// 从 long 到 int 的显式转换
long longValue = 1000000L;
int truncatedInt = (int) longValue;
System.out.println("Double 到 Int: " + intValue);
System.out.println("Long 到 Int: " + truncatedInt);
}
}
基本类型与字符串之间的转换
public class StringConversionDemo {
public static void main(String[] args) {
// 基本类型转换为字符串
int number = 42;
String stringNumber = String.valueOf(number);
// 字符串转换为基本类型
String textValue = "123";
int parsedNumber = Integer.parseInt(textValue);
System.out.println("基本类型转换为字符串: " + stringNumber);
System.out.println("字符串转换为基本类型: " + parsedNumber);
}
}
潜在的转换风险
graph TD
A[转换风险] --> B[数据丢失]
A --> C[溢出]
A --> D[精度降低]
最佳实践
- 注意潜在的数据丢失
- 使用适当的强制转换方法
- 在转换前检查值的范围
- 处理潜在的异常
常见的转换方法
Integer.parseInt()
Double.parseDouble()
String.valueOf()
- 显式强制转换运算符
通过 LabEx 学习
在 LabEx 的交互式 Java 编程环境中练习类型转换技术,以获得实践经验和理解。