类型转换

类型转换

转换顺序

从低到高

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

 

public class transformtype {
    public static void main(String[] args) {
        //强制转换  (类型名)变量名   高到低
        int i=128;
        byte b= (byte)i;//内存溢出

        //自动转换    低到高
        double d= i;

        System.out.println(i);
        System.out.println(b);
        System.out.println(d);
        /**
         * 注意点
         * 1.不能对布尔值进行转换
         * 2.不能把对象类型转换成不相干的类型
         * 3.把高容量转换到底容量的时候,强制转换
         * 4.转换的时候可能出现内存溢出,或者精度问题
         */
        System.out.println("==================================");
        System.out.println((int) 23.7);
        System.out.println((int) -45.89f);//精度问题

        System.out.println("==================================");
        char c= 'a';
        int e= c+1;
        System.out.println(e);
        System.out.println((char) e);
        //==============================================================================================
        //常见问题
        //操作比较大的数的时候,注意溢出问题
        System.out.println("*************************************************************************");
        int money=10_0000_0000;//数字之间可以用下划线分割
        int years=20;
        int total=money*years;//-1474836480  计算的时候溢出了
        System.out.println(total);
        long total2=money*years;//默认是int,转换之前已经存在问题了
        System.out.println(total2);

        long total3=(long) money*(long) years;//先进行转换
        System.out.println(total3);


    }
}

 

posted @ 2022-03-08 16:30  淦饭一定要快  阅读(40)  评论(0)    收藏  举报