JavaSE_类型转换案例分析

文章介绍了Java程序中数据类型转换的规则,包括自动转换(如byte、short转int等)可能导致的数据损失,以及强制类型转换(如将double转int)的注意事项和示例代码。
摘要由CSDN通过智能技术生成

    Java程序中要求参与计算的数据,必须要保证数据类型一致,如果数据类型不一致将发生类型的转换。
    自动转换: 将 "取值范围小" 的转成 "取值范围大" 的
    
    自动转换的规律:byte, short, char -> int -> long -> float -> double
    
    注意: 小于int都会直接转成int
    
    目标:理解数据类型的自动转换

public class DataConvert1 {
    public static void main(String[] args) {
        byte b = 10;
        int i = 20;
        
        // = 赋值运算,将右边的结果赋值给左边的变量,=优先级最低
        //       byte + int ==>  int + int ==> int
        // byte b2 = b + i; // 17: 错误: 不兼容的类型: 从int转换到byte可能会有损失
        int b2 = b + i;
        System.out.println(b2);
        
        double d = 3.1;
        int i2 = 2;
        //   double + int ==> double + double => double
        double x = d + i2;
        System.out.println(x);
        
        // 注意: 小于int都会直接转成int
        byte b3 = 1;
        short s = 2;
        //       byte + short ==> short + short ==> short
        //       byte + short ==> int  +  int  ==> int
        int y = b3 + s; // int
        System.out.println(y); // 32: 错误: 不兼容的类型: 从int转换到short可能会有损失
    }
}


    强制类型转换: 将 "取值范围大" 的转成 "取值范围小" 的
    强制类型转换公式:(重要)
        目标类型 变量名 = (目标类型)值;
    
    注意: 强制类型转换会丢失数据,一般不要做强制转换
    
    目标:理解数据类型的强制转换
        将 "取值范围大" 的转成 "取值范围小" 的
        int i = (int)3.4;

public class DataConvert2 {
    public static void main(String[] args) {
        // 目标类型 变量名 = (目标类型)值;
        int i = (int)3.4; // 12: 错误: 不兼容的类型: 从double转换到int可能会有损失
        System.out.println(i); // 3
        
        short s = 3;
        int i2 = 5;
        //  short + int ==> int + int => int
        short x = (short)(s + i2); // 将s + i2的结果强制转成short
        // short x = (short)s + (short)i2; // 不行
        System.out.println(x);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值