主要内容:
- 理解数据类型的自动转换
- 理解数据类型的强制转换
- 掌握数据类型转换的特殊情况
Java程序要求参与计算的数据,必须要保证数据类型的一致性,如果数据类型不一致将发生类型的转换。
1 自动转换
1.1 不同取值范围类型的两个变量
不同取值范围类型的两个变量相加,会将取值范围小的类型自动提升为取值范围大的类型。
如一个 int
类型变量和一个 byte
类型变量进行加法运算,结果是 int
类型,这就出现了数据类型的自动类型转换现象:
public static void main(String[] args) {
int i = 1;
byte b = 2;
// byte x = b + i; // 报错
int j = b + i;// int类型和byte类型运算,结果是int类型
System.out.println(j);
}
byte
类型内存占有1个字节,在和 int
类型运算时会提升为 int
类型,自动补充3个字节,因此计算后的结果还是 int
类型。
同样道理,当一个 int
类型变量和一个 double
类型变量运算时,int
类型将会自动提升为 double
类型进行运算。
public static void main(String[] args) {
int i = 1;
double d =