Java基础.强制转换、 自动转换,转换常见问题

Java是强类型语言,所以要进行有些运算的时候的,需要用到类型转换。

低 -------------------------------------------------------> 高
byte,short,chat—>int—>long—float—>double (小数的优先级大于整数)
  • 运算中,不同部类型的数据先转化为同一类型,然后进行运算。

  • 小数的优先级大于整数。

    强制转换: (类型)变量名 高转到低

    自动转换: 低—高

byte最大值127,把128给byte型变量,溢出了

byte -128到127 byte溢出

注意点:

       1. 不能对布尔值进行转换
        2.  能把对象类型转换为不相干的类型,(例如,人转换不了成猪,但男人可以变女人)
                     3. 在把高容量转换到低容量的时候,为强制转换
                     4.   换的时候可能存在内存溢出,或者精度问题!(小数的时候遇到)
public class Demo04 {
    public static void main(String[] args){
        int i =128;
        byte   b = (byte)i ;  //内存溢出   //加了括号的,就是强制转换。
        // 强制转换:  (类型)变量名   高转到低
        // 自动转换:  低---高

        int e =128;
        double   f =  i ;

        System.out.println(i);
        System.out.println(b);
        System.out.println(e);;
        System.out.println(f);

        /*
        注意点:
        1. 不能对布尔值(boolean)进行转换
        2. 不能把对象类型转换为不相干的类型,(例如人转换不了成猪,但男人可以变女人)
        3. 在把高容量转换到低容量的时候,为强制转换
        4. 转换的时候可能存在内存溢出,或者精度问题!(小数的时候遇到)
        */  // 多行注释

        System.out.println("=================================="); // 分割线
        System.out.println((int)23.7);   // 23,小数强转为精度问题
        System.out.println((int)-45.89f); //45,也是精度问题

        System.out.println("=============================");
        char c =  'a';
        int   d  =  c+1;
        System.out.println(d);  //   低———高   自动转换
        System.out.println((char)d); // 高——低 强制转换


    }



}



常见问题

public class Demo05 {
    public static void main(String[] args){
        // 操作比较大的数的时候,注意溢出问题
        // JDK7新特性 ,数字之间可以用下划线分割
        int  money = 10_0000_0000;
        int years = 20;
        int total1 =  money*years;  //-1474836480,计算是时候溢出了
       long tota12  =  money*years; // 默认是int,转换之前已经存在问题了?
        long total3 = money*((long)years); //先把一个数转换为long
        //  2个类型的数字相乘,结果肯定会按大的范围提升整体的数据类型,转换钱也没问题,和转化年份一样的~
       //    这里是先结算,在转换,,,不是先转换,再自动哦。
        

        System.out.println(total3);

    



    }


}

结束

视频来自狂神,此内容仅为学习,不做商用!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值