0
点赞
收藏
分享

微信扫一扫

【笔记】Java数据类型的转换:数据类型的自动转换、数据类型的强制转换

時小白 2022-02-28 阅读 182

文章目录

一、Java数据类型的转换

Java的数据类型在定义时就已经确定了,因此不能随意转换成其它的数据类型,但Java允许用户有限度地做类型转换处理。

数据类型的转换方式可分为“自动类型转换”和“强制类型转换

二、数据类型的自动转换

自动转换的两个条件
(1)转换前的数据类型与转换后的类型兼容。
(2)转换后的数据类型的表示范围比转换前的类型大。

例如,Java会自动将short类型的变量a转换为int类型。(整数与浮点数亦是兼容的,但需要注意的是!布尔类型只能存放true和false,与整数及字符是不兼容的不可能做)

:数据类型的转换

public class DataDemo02 {
    public static void main(String[] args) {
        int x = 30;     //定义整型变量
        float y = 22.19f; //定义浮点型变量
        System.out.println("x / y = "+(x/y));    //除法操作
        System.out.println("10 / 3.5 = "+(10/3.5));  //直接使用常量进行除法
        System.out.println("10 / 3 = "+(10/3));  //直接使用常量进行除法
    }
}

输出结果:
在这里插入图片描述
从程序的输出结果可以发现,int和float类型进行计算后输出的结果会变成float型。两个int型进行计算,最终结果还是int型,其小数部分会被忽略。

还有一个重要的知识点是:任何类型的数据都向String转型

有一种表示字符串的数据类型String从其定义上发现其首字母大写,所以作为一个,属于引用数据类型但是此类属于系统的类,使用上有一些注意事项,在此我们需要注意两点:

(1)String可以像普通变量那样直接通过赋值的方式声明。字符串是使用双引号("")括起来的。两个字符串之间可以使用 “+” 进行连接。
(2)任何数据类型碰到String类型的变量或常量之后都向String类型转换。

实例1:定义字符串变量

public class DataDemo02 {
    public static void main(String[] args) {
        String str = "helloworld";
        int x = 30;
        str = str + x;
        System.out.println("str = "+str);
    }
}

输出结果
在这里插入图片描述
实例2:字符串常量操作的问题

public class DataDemo02 {
    public static void main(String[] args) {
        int i = 1;
        int j = 2;
        System.out.println("1 + 2 = "+i+j);

        System.out.println("1 + 2 = "+(i+j));
    }
}

输出结果:
在这里插入图片描述
由输出结果我么可以发现,在计算i+j的值时,由于碰到了字符串常量,所以所有的数据类型都会变成字符串常量,也就是说此时的“+”实际上表示的是字符串连接的含义。

如果我们要计算整型i+j的值,就要加上括号,就可以得到想要的结果。

三、数据类型的强制转换

:数据类型的强制转换

public class DataDemo02 {
    public static void main(String[] args) {
        float f = 30.3f;  //定义浮点型变量
        int x = (int)f;  //强制转换为int型
        System.out.println("x = "+x);  //输出转型之后的值
        System.out.println("10 / 3 = "+((float)10/3));  //常量计算使用强制类型转换
    }
}

输出结果:
在这里插入图片描述
注意! 若是将一个超出该变量可表示范围的值赋给这个变量时,这种转换称为缩小转换。在转换过程中可能会丢失数据的精确度,Java并不会自动做这些类型的转换,此时就必须要做出强制性的转换。

举报

相关推荐

0 条评论