理解:
为什么要类型转换?
当存在不同类型的变量赋值给其他类型的变量
自动类型转换:
小范围的数据类型向大范围的数据类型进行转换
变量类型:
基本数据类型:
整型:byte(1字节=8bit) short(2字节) int(4字节) long(8字节,用L结尾)
浮点型:float(4字节,单精度,7位有效数字加一个符号位,定义变量时要以f或F结尾) double(8字节,双精度)
字符型:char(1字节,定义时通常使用一对'',且只能写一个字符)
布尔型:boolean(true或false,不能用0或1表示,常用于条件判断,循环结构中使用)
运算规则:
前提:只讨论7种基本数据类型变量间的运算,不包含boolean类型的
自动类型提升【从小到大】:(byte 、char 、short < int < long < float < double)
byte char short 相互之间做运算时结果均为int
-
结论:当容量小的数据类型的变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型。
-
说明:此时的容量大小指的是,表示数的范围的大和小。
强制类型转换:
理解:
强行将大范围的数据类型的变量转换为小范围的数据类型的变量
public class class01 {
public static void main(String[] args) {
int x = 12;
byte y = (byte) x;//x = 12 , y = 12
int m = 1000;
byte n = (byte) m;//m = 1000 , n = -24【数据损失】
}
}
-
结论:会出些数据缺失,精度损失