Java 类型转换(附示例)

更新于 2025-12-25

在学习 Java 类型转换之前,请确保你已经了解 Java 数据类型

什么是类型转换?

将一个数据类型(如 intfloatdouble 等)的值转换为另一个数据类型的过程,称为类型转换(Type Casting)。

在 Java 中,共有 13 种类型转换方式。但在本教程中,我们只重点介绍其中最主要的两种:

  1. 拓宽类型转换(Widening Type Casting)
  2. 缩窄类型转换(Narrowing Type Casting)

若想了解其他类型的转换方式,请参阅 Java 官方文档中的类型转换说明


拓宽类型转换(Widening Type Casting)

拓宽类型转换中,Java 会自动将一种数据类型转换为另一种数据类型。

示例:将 int 转换为 double

class Main {
    public static void main(String[] args) {
        // 创建 int 类型变量
        int num = 10;
        System.out.println("整数值: " + num);

        // 转换为 double 类型
        double data = num;
        System.out.println("双精度浮点值: " + data);
    }
}

输出:

整数值: 10
双精度浮点值: 10.0

在上面的例子中,我们将名为 numint 类型变量赋值给名为 datadouble 类型变量。

注意:Java 首先将 int 类型的数据转换为 double 类型,然后再赋值给 double 变量。

在拓宽类型转换中,较小范围的数据类型(占用空间小)会被自动转换为较大范围的数据类型(占用空间大),因此不会丢失数据。这也是为什么这种转换可以自动完成。

提示:这也被称为隐式类型转换(Implicit Type Casting)。


缩窄类型转换(Narrowing Type Casting)

缩窄类型转换中,我们需要手动使用括号将一种数据类型转换为另一种。

示例:将 double 转换为 int

class Main {
    public static void main(String[] args) {
        // 创建 double 类型变量
        double num = 10.99;
        System.out.println("双精度浮点值: " + num);

        // 转换为 int 类型
        int data = (int) num;
        System.out.println("整数值: " + data);
    }
}

输出:

双精度浮点值: 10.99
整数值: 10

在上面的例子中,我们将名为 numdouble 类型变量赋值给名为 dataint 类型变量。

注意这行代码:

int data = (int) num;

其中括号内的 (int) 表示将 num 变量强制转换为 int 类型。

在缩窄类型转换中,较大范围的数据类型(如 double)被转换为较小范围的数据类型(如 int),因此可能会丢失数据(例如小数部分被截断)。正因如此,这种转换不能自动进行,必须显式指定。

提示:这也被称为显式类型转换(Explicit Type Casting)。


其他类型转换示例

示例 1:将 int 转换为 String

class Main {
    public static void main(String[] args) {
        // 创建 int 类型变量
        int num = 10;
        System.out.println("整数值是: " + num);

        // 将 int 转换为 String
        String data = String.valueOf(num);
        System.out.println("字符串值是: " + data);
    }
}

输出:

整数值是: 10
字符串值是: 10

在上述程序中,注意这一行:

String data = String.valueOf(num);

这里我们使用了 Java String 类的 valueOf() 方法,将 int 类型变量转换为字符串。


示例 2:将 String 转换为 int

class Main {
    public static void main(String[] args) {
        // 创建 String 类型变量
        String data = "10";
        System.out.println("字符串值是: " + data);

        // 将 String 转换为 int
        int num = Integer.parseInt(data);
        System.out.println("整数值是: " + num);
    }
}

输出:

字符串值是: 10
整数值是: 10

在上面的例子中,注意这一行:

int num = Integer.parseInt(data);

这里我们使用了 Java Integer 类的 parseInt() 方法,将字符串变量转换为 int 类型。

注意:如果字符串无法被解析为整数(例如包含字母或符号),则会抛出 NumberFormatException 异常。