Java初学者笔记五:类型转换

类型转换

  1. 强制类型转换 高 —> 低
  2. 自动类型转换 低 —> 高
  • Java是强类型语言,所以要进行有些运算时,需进行类型转换。

  • 运算中,不同类型的数据先转换为同一类型,然后进行运算。

  • 不能对布尔值进行转换。

  • 不能把对象类型转换为不相干的类型。

  • 在把高容量转换到低容量的时候,强制转换。

  • 转换的时候可能存在内容溢出或精度问题。

  • 低>高(容量)byte, short, char ---> int ---> long ---> float ---> double(小数优先级大于整数)

            //强制转换
            int i = 128;
            byte b = (byte)i;//内存溢出,byte类最大值为127。(类型)变量名为强制转换。
            System.out.println(i); //输出为128
            System.out.println(b); //输出为-128,内存溢出
            
            //精度丢失
            System.out.println((int)23.7); //输出结果为23
            System.out.println((int)-45.89f); //输出结果为-45
            
            //自动转换
            int i = 128;
            double b = i;
            System.out.println(i); //输出为128
            System.out.println(b); //输出为128.0
            
            char c = 'a';
            int d = c+1;
            System.out.println(d); //输出结果为98
            System.out.println((char)d); //输出结果为b
            
            int money = 10_0000_0000;
            int years = 20;
            int total = money*years;
            System.out.println(total);//输出结果为-1474836480,计算时溢出。
            
            long total2 = money*years;
            System.out.println(total2);//输出结果为-1474836480,默认为int,输出结果也为int类。
            //解决办法
            long total3 = money*((long)years); //先把一个数转换为long
            System.out.println(total3); //输出结果为20000000000
    

posted on 2021-08-25 16:08  弥玊生  阅读(64)  评论(0)    收藏  举报