Java基础语法--05.类型转换

本文详细介绍了Java中的类型转换,包括强制转换和自动转换。通过实例展示了int转byte时可能出现的溢出问题,以及double转int时的精度损失。还提到了char类型与整型的相互转换,并探讨了数字之间的运算可能导致的溢出问题,以及JDK7中数字间使用下划线的语法糖。最后,文章强调了类型转换时需要注意的溢出和精度问题。
摘要由CSDN通过智能技术生成

⑤类型转换

以下内容均来自【狂神说Java】Java零基础学习视频通俗易懂P25 观看学习

类型转换

在这里插入图片描述

Java代码如下

public class Demo04 {
    public static void main(String[] args) {
        //强制转换     (类型)变量名     高--低
        //自动转换     (类型)变量名     低--高
        int i =128;
        byte b =(byte) i;   //强制转换 将 i 从int类型转换成byte类型
        System.out.println(i);  //结果为128
        System.out.println(b);  //结果为-128,因为byte最大是127,所以产生了内存溢出,出现问题
        
        int i1 = 128;
        double d = i1; //此时 i1 会自动从int类型转换成double类型   int低 --->double高  自动转换
        System.out.println(i1);  //结果为128
        System.out.println(d);  //结果为128.0
        
        System.out.println("=============================");

        /*
        注意点:1、不能对Boolean布尔类型进行转换
               2、不能把对象类型转化成不相干的类型,例如人不能转换成猪,但是男人可以变女人
               3、高容量转换成低容量,强制转换
               4、转换的时候存在内存溢出,或者精度问题!
         */

        System.out.println((int)52.1);   //结果为52,精度出现问题
        System.out.println((int)-52.09f);  //结果为-52,精度出现问题
        System.out.println("=============================");

        char c = 'a';
        int  i2 = c+1;
        System.out.println(i2);   //结果为98
        System.out.println((char) i2);    //结果为b
        System.out.println("=============================");

            //操作比较大的数的时候,注意溢出问题
            //JDK7新特性,数字之间可以用下划线_分割,下划线不会被表现出来
            int money = 10_0000_0000;
            int year = 20;
            System.out.println(money); //结果为1000000000

            int total = money*year;
            System.out.println(total); //结果为-1474836480, 计算的时候溢出了

            long total2 = money*year; //默认是int类型。在转换之前是int类型,已经溢出了,所以转换成long类型时候看到有问题
            System.out.println(total2); //结果为-1474836480

            long total3 = money*((long)year); //先把一个数从int类型变成long类型
            System.out.println(total3); //结果为20000000000,结果没问题
            //long类型 以后在数字后面写大写 L ,不要写小写 l ,小写的l 容易跟数字 1 混淆
    }
}

代码运行结果如下

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值