1 数据类型
Java的数据类型可以分为两大类:基本数据类型(primitive data type)和引用数据类型(reference data type)。
数据类型 | 默认初始值 | 大小(字节) |
---|---|---|
byte | 0 | 1 |
short | 0 | 2 |
int | 0 | 4 |
long | 0L | 8 |
float | 0.0F | 4 |
double | 0.0D | 8 |
char | 空 | 2 |
boolean | false | 1或4 |
class | null | 4 |
interface | null | 4 |
array | null | 4 |
- 整型常数默认为int类型。
- 没有后缀F/f的浮点数值默认为double类型。
- 浮点数是不精确的,不要进行直接的比较。
- JVM规范指出boolean当做int处理,也就是4个字节;boolean数组当做byte数组处理,也就是1个字节。
2 数据类型转换
2.1 自动类型转换
自动类型转换指的是容量小的数据类型可以自动转换为容量大的数据类型。实线表示无数据丢失的自动类型转换,虚线表示在转换时可能会有精度的损失。
可以将整型常量直接赋值给byte、short、char等数据类型的变量,而不需要进行强制类型转换,只要不超出其表数范围即可。
2.2 强制类型转换
强制类型转换,又被称为造型(cast),用于强制的转换一个数值的类型。在有可能丢失信息的情况下进行的转换是通过造型来完成的,但可能造成精度降低或溢出。
(type)var
不能在boolean类型和任何数值类型之间做强制类型转换。