Java中的类型转换

类型转换

  • Typecasting是一个用与Java类似的所有语言引入的术语。

  • 当我们将原始数据类型分配给另一个数据类型时。

  • 在Java中,类型转换具有两种类型:

    1. 扩大类型转换

    2. 缩小类型转换

我们将通过示例研究两种类型转换。

a)扩大类型转换

  • 当我们将较小的数据类型转换为较大的数据类型时。

  • 在这种类型转换中,没有数据丢失。

  • 它是由编译器完成的(即自动的)。它不是由用户完成的。

  • 扩展类型转换的层次描述如下:
    字节→短→字符→整数→长→浮点→双精度 (byte → short → char → int → long → float → double)


扩大类型转换的例子

public class WideningTypecast {
    public static void main(String[] args) {
        int num1;
        byte num2 = 20;

        //我们正在分配较小的数据类型 
        //字节到较大的数据类型 
        num1 = num2;

        //打印输出 
        System.out.println("The value of num1 is :" + num1);
    }

}

输出结果

D:\Programs>javac WideningTypecast.java

D:\Programs>java WideningTypecast
The value of num1 is :20

b)缩小类型转换

  • 当我们将较大的数据类型转换为较小的数据类型时。

  • 在这种类型转换中,存在数据丢失。

  • 它不是由编译器(即手动)完成的。它是由用户完成的。

  • 缩小类型转换的层次结构描述如下:
    double→float→long→int→char→short→byte

缩小类型转换的示例

public class NarrowingTypecast {
    public static void main(String[] args) {
        int num1;
        double num2 = 20.8;

        //我们正在分配更大尺寸的数据类型 
        //长到较小的数据类型 
        num1 = (int) num2;

        //打印输出 
        System.out.println("The value of num1 is :" + num1);
    }
}

输出结果

D:\Programs>javac NarrowingTypecast.java

D:\Programs>java NarrowingTypecast
The value of num1 is :20