Java第六课:数据类型转换

数据类型转换

  • 不同数据类型之间运算前必须转换成相同的数据类型。

  • Java数据类型按容量由低到高排序:

    byte,short,char–>int–>long–>float–>double

  • 注意事项:

         1. 不能把boolean类型进行类型转换
         2. 不能把对象类型转换成不相关类型的对象
         3. 容量大的类型转换成容量小的类型须用强制类型转换,容量小的类型转换成容量大的类型为自动转换
         4. 转换过程中可能导致溢出或损失精度
         5.  浮点数转换成整数是通过舍弃小数获得,而不是四舍五入
    
public class Demo{
    public static void main(String[] args){
        int i = 128;
        byte b = (byte)i; // -128,内存溢出
        
        (int)23.7 == 23;
        (int)-45.89f == -45; // 损失精度
    }
}
  • 关于char类型数据:
public class Demo{
    public static void main(String[] args){
        char c = 'a';
        int i = c+1;
        System.out.println(i); // 98
        System.out.println((char)i); //b
    }
}
  • 操作比较大的数时,注意溢出问题
public class Demo{
    public static void main(String[] args);{
        int money = 10_0000_0000;
        //JDK7新特性:数字之间可以用下划线分割
        int years = 20;
        int total = money*years;
        System.out.println(total);
        // -147483680,内存溢出
        long total2 = money*years; 
        // 依然溢出,默认是int计算后转换,计算完成后再已经溢出。
        long total3 == (long)money*years;
        //或long total3 ==money*((long)years);
        System.out.println(total3); //数据正常。
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值