类型转换

优先级:demo4

低-------------------------------------高

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

强制转换:由高到低

public class Demo4 {
    public static void main(String[] args) {
        int i=128;
        double b = i;//内存溢出  byte  -128~127

        //强制转换   (类型)变量名  高->低
        //自动转换  低->高

        System.out.println(i);//128
        System.out.println(b);//
        /*
        注意点:
        1、不能对布尔值转换
        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);//98
        System.out.println((char)d);//b  (a后面b)


    }
}

大的数值转换

public class Demo5 {
    public static void main(String[] args) {
        //操作比较大的数值时,注意一溢出问题
        //JDK7新特性,熟自制件可以用下划线分割。
        int money = 10_0000_0000;
        int year = 20;
        int total = money*year;
        System.out.println(total);//-1474836480溢出
        long total2 = money * year;//默认是int,转换之前已经溢出了
        System.out.println(total2);//-1474836480溢出
        long total3=money*((long)year);//先把一个数转换成long
        System.out.println(total3);//20000000000
        
    }
}

 

posted @ 2022-01-10 21:58  遇洲则简  阅读(36)  评论(0)    收藏  举报