Java笔记--类型转换

类型转换

低--------------------------------------------------------------->高

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

在运算中,不同类型的数据要转换为同一类型,然后进行运算.


高到低,必须强制转换

低到高,自动进行转换


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


public class Demo06 {
    public static void main(String[] args) {
        int i = 128;
        byte b = (byte)i;  //最大值127,现在赋值128,内存溢出,输出结果达不到目的,所以要避免溢出

        //强制转换  高到低时  格式:(类型)变量名;
        //低到高时,不需要强制转换,可以自动转换;
        System.out.println(i);
        System.out.println(b);

        int i2 = 128;
        double b2 = (double)i2;

        System.out.println(i2);
        System.out.println(b2);    //此时输出结果为128

        /*
        1. 不能对布尔值进行转换;
        2. 不能把对象类型转换为不相干的类型;
        3. 把高容量转换到低容量的时候,强制转换;
        4. 转换的时候可能存在内存溢出,或者精度问题;
         */
        System.out.println("1======================================");
        System.out.println((int)-23.8);   //输出结果为-23;因此要注意精度问题
        System.out.println((int)2.23f);    //输出结果为2;因此要注意精度问题

        char c = 'a';    //赋值变量c
        int b3 = c + 1;    //赋值变量b3
        System.out.println(b3);    //输出b3
        System.out.println((char)b3);    //强制转换b3为char,输出

        System.out.println("2=================================");
        int money = 1000000000;
        int years = 20;
        int total = money*years;
        System.out.println(total);    //输出结果为-1474836480,不是想要的结果,原因为计算的时候溢出了;

        System.out.println("3=================================");
        //使用long输出,结果会怎样?
        long total2 = money*years;
        System.out.println(total2);    //输出结果仍然是-1474836480,原因:虽然转换了,但是在转换之前已经出现问题了。

        System.out.println("4=================================");
        //先把一个数字转换为long,结果会怎样?
        long total3 = money*((long)years);
        System.out.println(total3);    //输出结果是20000000000,达到目的

        System.out.println("5=================================");
        //把两个都转换为long,结果会怎样?
        long total6 = ((long)money*((long)years));
        System.out.println(total6);    //输出结果是输出结果是20000000000,达到目的


        System.out.println("6=================================");
        //赋值long的时候要注意大小写,虽然结果一样,但常用大写,避免错看成1;
        long total4 = 343434343433434L;
        long total5 = 32323242545381l;
        System.out.println(total4);
        System.out.println(total5);

    }
}


版权声明:本文为Medzy原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。