基本数据类型之间的转换

变量之间的转换规则

布尔型变量在和其他 7 种基本数据类型做运算时,无法转化为其他的数据类型,所以下面所说的运算都是除了布尔型的其他 7 种基本数据类型之间的转换。

1、自动类型提升

byte b1 = 1;
int i1 = 2;

b1 + i1 运算后的结果应该是什么类型的呢?

我们都知道计算机底层是二进制数,所以转化成二进制计算:

Java 中基本数据类型的变量的转换规则
image-20200822095929432

byte 类型的变量在内存中占 1 个字节,而 int 类型的变量在内存中占 4 个字节。所以运算结果肯定是 4 个字节的 int 类型呀。

7 中基本数据类型自动类型提升的规则:

bytecharshort -> int -> long -> float -> double

byte、char、short、int 类型的变量之间做运算时,byte、char、short 类型的变量的变量类型会自动提升为 int

2、强制类型转换

强制类型转换是自动类型提升的逆运算。

原变量类型 变量名 = (强转后的变量类型)变量名/变量值

要小心使用强制类型转换,强制类型转换可能会造成变量精度损失。

比如将 double 类型变量转化为 int 类型变量:

int i1 = (int11.7;
System.out.println(i1);    // 11

控制台会输出 11,使用强制类型转换,损失了小数点后面的值。

相关文章: