NIUCLOUD是一款SaaS管理后台框架多应用插件+云编译。上千名开发者、服务商正在积极拥抱开发者生态。欢迎开发者们免费入驻。一起助力发展! 广告
# Java 类型转换 > 原文: [https://www.programiz.com/java-programming/typecasting](https://www.programiz.com/java-programming/typecasting) #### 在本教程中,我们将借助示例来学习 Java 类型转换及其类型。 在学习 **Java 类型转换**之前,请确保您了解 [Java 数据类型](/java-programming/variables-primitive-data-types "Java Data Types")。 * * * ## 类型转换 将一种数据类型(`int`,`float`,`double`等)的值转换为另一种数据类型的过程称为类型转换。 在 Java 中,有 13 种类型转换。 但是,在本教程中,我们将只关注主要的两种类型。 1.加宽类型转换 2.窄类型转换 要了解其他类型的类型转换,请访问 [Java 类型转换(Java 官方文档)](https://docs.oracle.com/javase/specs/jls/se10/html/jls-5.html "Java Type Conversion (official Java documentation)")。 * * * ## 扩展类型转换 在**扩展类型转换**中,Java 自动将一种数据类型转换为另一种数据类型。 ### 示例:将`int`转换为`double` ```java class Main { public static void main(String[] args) { // create int type variable int num = 10; System.out.println("The integer value: " + num); // convert into double type double data = num; System.out.println("The double value: " + data); } } ``` **输出** ```java The integer value: 10 The double value: 10.0 ``` 在上面的示例中,我们将名为`num`的`int`类型变量分配给名为`data`的`double`类型变量。 在这里,Java 首先将`int`类型的数据转换为`double`类型。 然后将其分配给`double`变量。 在**扩展类型转换**的情况下,较低的数据类型(具有较小的大小)将转换为较高的数据类型(具有较大的大小)。 因此,没有数据丢失。 这就是为什么这种类型的转换会自动发生的原因。 **注意**:这也称为**隐式类型转换**。 * * * ## 缩小类型转换 在**缩小类型转换**中,我们使用括号将一种数据类型手动转换为另一种数据类型。 ### 示例:将`double`转换为`int` ```java class Main { public static void main(String[] args) { // create double type variable double num = 10.99; System.out.println("The double value: " + num); // convert into int type int data = (int)num; System.out.println("The integer value: " + data); } } ``` **输出**: ```java The double value: 10.99 The integer value: 10 ``` 在上面的示例中,我们将名为`num`的`double`类型变量分配给名为`data`的`int`类型变量。 注意这一行, ```java int data = (int)num; ``` 在此,括号内的`int`关键字表示将`num`变量转换为`int`类型。 在**缩小类型转换**的情况下,较高的数据类型(具有较大的大小)将转换为较低的数据类型(具有较小的大小)。 因此,存在数据丢失。 这就是为什么这种类型的转换不会自动发生的原因。 **注意**:这也称为**显式类型转换**。 * * * 让我们看一下 Java 中其他类型转换的一些示例。 ## 示例 1:从`int`到`String`的类型转换 ```java class Main { public static void main(String[] args) { // create int type variable int num = 10; System.out.println("The integer value is: " + num); // converts int to string type String data = String.valueOf(num); System.out.println("The string value is: " + data); } } ``` **输出**: ```java The integer value is: 10 The string value is: 10 ``` 在上面的程序中,注意以下行 ```java String data = String.valueOf(num); ``` 在这里,我们已使用 [Java `String`类](/java-programming/string "Java String")的`valueOf()`方法将`int`类型变量转换为字符串。 * * * ## 示例 2:从`String`到`int`的类型转换 ```java class Main { public static void main(String[] args) { // create string type variable String data = "10"; System.out.println("The string value is: " + data); // convert string variable to int int num = Integer.parseInt(data); System.out.println("The integer value is: " + num); } } ``` **输出**: ```java The string value is: 10 The integer value is: 10 ``` 在上面的示例中,请注意以下行 ```java int num = Integer.parseInt(data); ``` 在这里,我们使用 Java `Integer`类的`parseInt()`方法将字符串类型变量转换为`int`变量。 **注意**:如果无法将字符串变量转换为整数变量,则会发生名为`NumberFormatException`的异常。