字节数 | 整型 | 浮点型 | 布尔型 | 字符型 |
---|---|---|---|---|
1字节 | byte | boolean | ||
2字节 | short | char | ||
4字节 | int | float | ||
8字节 | long | double |
一、自动数据类型提升
- 当数值范围小 的数据类型变量与 数值范围大 的数据类型变量做运算时,自动提升为数值范围大的数据类型。
注:是 数值范围 大小,不是 数据类型内存 大小。 比如:float(4字节)数值范围类型比long(8字节)数值范围大。 - byte、short、char类型之间不会相互转换,他们三者在计算时默认首先转换为int类型。
- 有很多种类型的数据混合运算时,系统首先自动将所有数据类型转换成数值范围最大的数据类型,然后再计算。
- 当把任何的基本数据类型的值和字符串(String)进行连接计算时(+),基本数据类型的值将自动转化为字符串(String)类型。
二、强制数据类型转换
强制数据类型转换:自动数据类型提升的逆运算。
- 基本数据类型需要使用强转符:()
注意:强制类型转换可能导致精度损失。 - 字符串不能直接转换为基本数据类型,可以通过基本类型的包装类实现把字符串转换成基本类型。
- 3boolean类型不可以转换为其他的数据类型。