java基础学习【java SE】(2)类型转换

类型转换

java基础学习【java SE】(2)类型转换

强制类型转换和自动类型转换

强制类型转换

//强制类型转换  (类型)变量名   高----》低
        int i=128;
        byte b=(byte)i;  //内存溢出
        System.out.println(i); //128
        System.out.println(b);  //-128

输出结果图:

java基础学习【java SE】(2)类型转换

自动类型转换

//自动转换    低-----》高
        int i1=128;
        double b1=i1;  //内存溢出
        System.out.println(i1); //128
        System.out.println(b1); //128.0

输出结果图:

java基础学习【java SE】(2)类型转换

注意点

/*
        注意点:1.不能对布尔值进行转换
               2.不能把对象类型转换为不相干的类型
               3.把高容量转化为低容量时,强制转换
               4.转换的时候可能存在内存溢出或精度问题!
         */
        System.out.println((int)45.7);   //45
        System.out.println((int)-37.89f);  //-37

        System.out.println("--------------------------------------------------");

        char c='a';
        int d=c+1;
        System.out.println(d);      //98
        System.out.println((char)d);  //b

输出结果:

java基础学习【java SE】(2)类型转换

溢出问题

//操作比较大的数时,注意溢出问题
        //JDK7新特性,数字之间可以用下滑线分割

        int money=10_0000_0000;
        int years=20;
        int total=money*years;
        System.out.println(total);  //-1474836480  计算时溢出了

        long total1=money*years;   //等号右边的默认是int,已经溢出了,再转换没用
        System.out.println(total1);  //-1474836480

        long total2=money*(long)years;  //先把一个数转换为long    long等级高于int
        System.out.println(total2);     //20000000000

上一篇:Java SE 集合框架


下一篇:JAVA SE基础知识总结