自动类型转换
整型、实型(常量)、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算。
低 --------------------------------------------------------------> 高
byte,short,char—> int —> long—> float —> double
数据类型转换必须满足如下规则:
-
1. 不能对boolean类型进行类型转换。
-
2. 不能把对象类型转换成不相关类的对象。
-
3. 在把容量大的类型转换为容量小的类型时必须使用强制类型转换。
-
4. 转换过程中可能导致溢出或损失精度。
-
5. 浮点数到整数的转换是通过舍弃小数得到(不是四舍五入)。
自动类型转换必须满足转换前的数据类型的位数要低于转换后的数据类型。例: short数据类型为16位,可自动转换为32位数的int类型。
强制类型转换
-
1. 条件是转换的数据类型必须是兼容的。
-
2. 格式:(type)value,type是要强制类型转换后的数据类型。
public class Test{
public static void main(String[] args){
int i1 = 134;
byte b = (byte)i1;//强制类型转换为byte
System.out.println("int值为:" + i1 + "\n" + "强制类型转换为byte后的值为:"+b);
}
}
结果展示:
int值为:134
强制类型转换为byte后的值为:-122
隐含强制类型转换
-
1. 整数的默认类型是 int。
-
2. 浮点型不存在这种情况,因为在定义 float 类型时必须在数字后面跟上 F 或者 f。
Java 常量,在程序运行时是不能被修改的,使用 final 关键字来修饰常量,声明方式和变量类似,通常使用大写字母表示常量。