Java强制转换

强制转换

低------------------------------>高

byte,shout,char->int->long->float->double

注意
1.不能对布尔值进行转换
2.不能把对象类型转换为不相干的类型
3.再把高容量转换到低容量的时候,用强制转换
4.转换的时候可能存在内存溢出,或者精度问题
        int i =128;
        byte b =(byte)i;
        System.out.println(i);
        System.out.println(b);//-128  内存溢出
        //强制转换  (类型)变量名  高--->低
        //自动转换   低-->高

        int i2=128;
        double b2=i2;
        System.out.println(i2);//128
        System.out.println(b2);//128.8

        System.out.println("-----------------");
        System.out.println((int)23.54);//精度问题
        System.out.println((int)45637.98f);
        System.out.println("-----------------");
        char c='a';
        int i3= c+1;
        System.out.println((int)i3);//98
        System.out.println((char)i3);//b
       //操作比较大的数的时候,注意溢出问题
      //JDK新特性,数字之间可以用下划线
        int money= 10_0000_0000;
        int years =20;
        int total=money * years;
        long  total2=money * years;
        long total3=money * ((long)years);//先把一个数转换为long
        System.out.println(money);
        System.out.println(total);//-1474836480,计算的时候溢出了
        System.out.println(total2);//默认是int,转换之前就出现问题啦
        System.out.println(total3);
posted on 2021-03-06 22:51  月下伊独舞  阅读(205)  评论(0编辑  收藏  举报