与Java的初遇——基本数据类型转换

基本数据类型转换

整型、实型(常量)、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算。

转换从低级到高级:byte,short,char—> int —> long—> float —> double

数据类型转换必须满足如下规则:

  • 不能对boolean类型进行类型转换。

  • 不能把对象类型转换成不相关类的对象。

  • 在把容量大的类型转换为容量小的类型时必须使用强制类型转换。

1. 自动类型转换

  • 容量小的类型自动转换为容量大的数据类型。

  • 有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的那种数据类型,然后再进行计算。

  • byte,short,char之间不会相互转换,他们三者在计算时首先转换为int类型。

    //例: public class VarTest1{     public static void main(String[] args){         byte b1 = 2;         int i1 = b1;//byte自动转换类型为int         System.out.println(i1);     } } 

2. 强制类型转换

  • 条件是转换的数据类型必须是兼容的。

  • 格式:(type)value type是要强制类型转换后的数据类型

  • 转换过程中可能导致溢出或损失精度

  • 浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入

    //例 public class VarTest2{     public static void main(String[] args){         int i =128;            byte b = (byte)i;//强制类型转换为byte         System.out.println(b);         double d1 = 12.3;         int i1 = (int)d1;//强制类型转换为int         System.out.println(i1);     } } /* 输出结果为: -128 12 */