整型、实型(常量)、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算。
转换从低级到高级:byte,short,char—> int —> long—> float —> double
数据类型转换必须满足如下规则:
不能对boolean类型进行类型转换。
不能把对象类型转换成不相关类的对象。
在把容量大的类型转换为容量小的类型时必须使用强制类型转换。
容量小的类型自动转换为容量大的数据类型。
有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的那种数据类型,然后再进行计算。
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); } }
条件是转换的数据类型必须是兼容的。
格式:(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 */