保持更新--java的成长之路-3-类型转换,内存溢出

/*
java类型转换级别,由低到高分别为:
byte,short,char,int,long,float,double
低到高转换,叫自动类型转换
高到低转换,叫强制类型转换 强制类型转换需要注意内存溢出
内存溢出:假如byte类型最高是127,赋值128就叫溢出,无法转换正确
 */

public class nice4 {
    public static void main(String[] args) {
        int a = 128 ;
        byte b = (byte) a ;
        System.out.println(a);      //输出128
        System.out.println(b);      //输出-128

        //内存溢出,因为byte最大值是127,
        //强制转换格式:(类型)变量名     如:(byte)a        ---高到低转换
        //自动转换格式: 直接赋值转换即可   如:double b =  a   ---低到高转换

        /*
        注意点:
        1、无法对布尔值进行转换
        2、不能把对象类型转换为不想干类型
        3、高-低转换的时候,要强制转换
        4、转换的时候可能会遇到内存溢出问题或精度问题
         */
        System.out.println((int)46.7);      //输出46     精度问题
        System.out.println((int)-45.78f);   //输出-45


    }
}

public class nice5 {
    public static void main(String[] args) {
        int money = 10_000_000_00;
        int years = 16;
        int total = money * years ;
        long total2 = money * years ;
        System.out.println(total);      //输出-1179869184
        //计算过大,溢出

        System.out.println(total2);     //输出-1179869184
        //long在转换前已经存在问题,默认已经是int


        long total3 = money* ((long)years);
        System.out.println(total3);     //输出16000000000
        //输出前先转换成long类型

        //注意:L和l 大小写L,小写l一般是看成1,大写L一般看成是long类型,所以一般要大写L
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值