「这是我参与2022首次更文挑战的第7天,活动详情查看:2022首次更文挑战」。
java的数据类型
java是一种强类型语言。这就意味着必须为每一个变量声明一种类型---《java核心技术卷》
在java语言中一共有8种基本数据类型,整形有四种,浮点型有两种,字符型有一种,表示真值的有一种。
整形
整形用于表示没有小数部分的数值,允许是负数---《java核心技术卷》
| 类型 | 储存大小 | 取值范围 |
|---|---|---|
| int | 4个字节 | -2^31 ~ 2^31-1 |
| short | 2个字节 | -2^15 ~ 2^15-1 |
| long | 8个字节 | -2^63 ~ 2^63-1 |
| byte | 1个字节 | -2^7 ~ 2^7-1 |
从表中我们可以看出对于整形来说,每个类型的最高字节是用来表示符号的,所以每个类型的取值大小要为 -2^(位数 - 1) ~ 2^(位数 - 1) - 1。byte在整型中的位置比较特殊,和后面的字符型char有一定的联系,这个我们后面在说。
java中的整型数据类型和其他语言存在一定的差别
- java整型的取值范围和java程序运行的平台无关,在前面介绍java的可移植性时我们也介绍了,java的数据类型的取值是已经确定了的,不会因为运行的平台改变而改变。
- 对于长整型long来说,需要在具体数字后面加上L或者l来声明它是一个long类型的数据,在7版本后java还提供了下划线来方便辨别数字的具体大小。比如1_000_000,java编译器会去除这些下划线。
浮点型
浮点型用于表示有小数部分的数值---《java核心技术卷》
| 类型 | 储存大小 | 有效位数 |
|---|---|---|
| float | 4字节 | 有效位数为6~7位 |
| double | 8字节 | 有效位数为15位 |
float和double的最大区别就是小数点后的有效位数,也就是精度。double的精度是float的两倍,在java中如果没有对小数后面有后缀声明的化,默认为double类型,如果在小数后面加上f或者F的话,则为float类型数据。