类型转换

类型转换

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

低--------------------------------->   高
byte,short,char->int->long->float->double
//小数的优先级大于整数

运算中,不同类型的数据先转化为同一类型,然后在进行运算。

  • 强制类型转换

  • 自动类型转换

package base;

public class Demo05 {
    public static void main(String[] args) {
        int i = 128;
        byte b = (byte)i;   //内存溢出
        System.out.println(i);
        System.out.println(b);

        System.out.println("==========");
        System.out.println((int)23.7);  //23
        System.out.println((int)-45.78f);   //-45

        System.out.println("==========");
        char x = 's';
        int f = x+2;
        System.out.println(f);  //输出:117
        System.out.println((char)f);    //输出:u

        /*
            注意点:
            1.不能对布尔值进行转换
            2.不能把对象类型转化为不相干的类型
            3.在把高容量转化为低容量的时候,强制转换
            4.转换的时候可能存在内存溢出,或者精度问题!
         */


    }
}

package base;

public class Demo06 {
    public static void main(String[] args) {
        /*
            操作比较大的时候,注意溢出问题
            JDK7新特性,树脂基之间可以用下划线分割
         */
        int money = 10_0000_0000;
        System.out.println(money);
        int years = 20;
        int total = money*years;
        long total2 = money*years;
        long total3 = money*((long)years);
        System.out.println(total);  //-1474836480 计算溢出
        System.out.println(total2);
        //-1474836480 默认为int,转换之前就已经存在了
        System.out.println(total3);
        // 20000000000 先把一个数转换为long

    }
}

posted @ 2022-11-29 09:23  伯爵论  阅读(17)  评论(0)    收藏  举报