类型转换

类型转换

public class Demo04 {

    public static void main(String[] args) {
        int i = 128;
        byte b = (byte) i;//在强制转换时要在变量前(i)加上()中间写类型  这里是byte    。强制转换是有高转到低的时候用的:高--低
        //内存溢出:byte最大值只有127这里确实128 所以在转换的时候尽量避免内存溢出的情况
        //自动转换:低--高

        System.out.println(i);
        System.out.println(b);


        /*
        1.不能对布尔值进行转换
        2.不能把对象类型转换成不相干的类型,
        3.再把高容量转换成低容量的时候剖:用强制转换  从低容量到高容量会自动转换
        4.转换的时候可能存在内存溢出,或精度问题!(精度问题会在小数中遇到)
        5.低--------------------------------------------高
             byte,short,char->int->long->float->double
      下面是例子

         */
        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);
        System.out.println((char)  d);


    }
}

public class Demo05 {
    public static void main(String[] args) {
        //操作比较大的时候,注意溢出问题
        //JDK7新特性,数字之间可以用下划线分割  不会被输出
        int money = 10_0000_0000;
        int years = 20;
        int total =money*years;//-1474836480  计算式溢出了
        long total2 =money*years;//默认是int,转换之前已经有问题了所以这个方法是错误的
        //正确操作
        long total23 = ((long)money)*years ;//要先把一个数据转换成long
        long total24 = money*((long)years);//这两个输出一样的
        System.out.println(total23);
        System.out.println(total24);



    }
}

上一篇:面向对象三大特征


下一篇:【算法】贪心算法(C++)