类型转换+强制类型转换+强制类型转换内存溢出解决方法

本文详细介绍了Java中的类型转换,包括强类型转换和自动类型转换,通过实例展示如何处理byte、short、char到int再到浮点数的转换,以及类型转换中的内存溢出、精度问题和限制条件。特别强调了类型转换的规则和潜在问题。
摘要由CSDN通过智能技术生成

类型转换

  • Java是强类型语言,在使用的时候会用到类型转换
  • byte,short,char–>int—>long---->float---->double
  • 运算中不同类型先转换为同一类型,再进行计算
  • 类型转换分为
    • 强类型转换
    • 自动类型转换
public class TypeConvert {
    public static void main(String[] args) {
        int i = 128;
        byte b = (byte) i;
        System.out.println(b);//-128,因为byte最大值127,内存溢出

        /*
        * 强制类型转换:高到低
        * 自动类型转换:低到高*/

        /*
        注意点:
            1.不能对布尔值进行转换
            2.不能把对象类型转换成不想干的类型
            3.转换是可能会出现内存溢出,和精度问题
        */


        //精度问题
        System.out.println("=======================");
        System.out.println((int)23.7);//23
        System.out.println((int)-23.753);//-23

        //字符转换
        System.out.println("=======================");
        char c1 = 'a';
        int i2 = c1+1;
        System.out.println(c1);//a
        System.out.println(i2);//98
        System.out.println((char) i2);//b




        System.out.println("=======================");
        //内存溢出和解决办法
        int money = 1_000_000_000;
        int year = 30;
        int total1 = money*year;//内存溢出
        long total2 = money*year;//运算之后转换
        long total3 = money*(long)year;//在运算之前强制转换

        System.out.println(total1);//-64771072
        System.out.println(total2);//-64771072
        System.out.println(total3);//30000000000





    }



}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值