Java基本数据类型(8种)
编写 Java 程序时,使用变量前必须先确定数据类型。为此,Java语言提供了 8 种基本数据类型。
Java 的基本数据类型可以分为三大类,即数值类型(6种)、字符类型(1种)和布尔类型(1种)。其中,数值类型包含整数类型(4种)和浮点类型(2种)。
Java 的基本数据类型如下图所示:
图 1 Java的基本数据类型示意图
接下来逐一讲解这 8 种基本数据类型。
例如,“截至 2019 年 5 月 21 日 7 时 11 分,您的话费余额为 0 元”,其中的 2019、5、21、7、11 和 0 等整数数值均属于整数类型。
Java 语言提供了 4 种整数类型,即 byte、short、int 和 long,这 4 种整数类型不仅占用的内存空间不同,取值范围也不同,具体如下表所示。
例如,表示一个 byte 型变量 b 能取到的最大值的代码如下:
图 2 Eclipse出现的错误提示
例如,先声明 short 型变量 min(表示“最小值”)和 max(表示“最大值”),再分别为变量 min 和 max 赋值,值分别为 −32768 和 32767,代码如下:
所谓默认的整数类型,如果一个整数不在 byte 型或 short 型的取值范围内,或者整数的格式不符合 long 型的要求,那么当 Java 程序被编译时,这个整数会被当作 int 型。
int 型占用 4 个字节的内存空间,其取值范围是 −2147483648~2147483647。虽然 int 型变量的取值范围较大,但使用时也要注意 int 型变量能取到的最大值和最小值,以免因数据溢出产生错误。
例如,把 9787569205688 赋给一个 int 型变量 numbe r时,Eclipse 将出现错误提示,如下图所示。
图 3 Eclipse出现的错误提示
那么书号 9787569205688 要赋给哪种整数类型的变量,Eclipse 才不会报错呢?答案就是马上要讲到的 long 型。
如果把图 3 所示的 int 修改为 long,其中的错误提示就会消失吗?修改后 Eclipse 的显示如下图所示。
图 4 修改后Eclipse的显示
不难看出,错误提示依然存在。这是因为在为 long 型变量赋值时,须在数值的结尾处加上 L 或者 l(小写的 L),所以图 4 所示的代码要修改为如下格式。
Java 语言把浮点类型分为单精度浮点型(float型)和双精度浮点型(double型)。float 型和 double 型占用的内存空间和取值范围如下表所示。
需要注意的是,在为 float 型变量赋值时,必须在数值的结尾处加上 F 或者 f,就如同前面介绍的为 long 型变量赋值的规则一样。
例如,定义一个表示身高、值为 1.72 的 float 型变量 height,代码如下。
因为 double 型是默认的浮点类型,所以在为 double 型变量赋值时,可以直接把小数数值写在等号的右边。
例如,定义一个表示体温、值为 36.8 的 double 型变量 temperature,代码如下。
定义 char 型变量时,char 型变量的值要用英文格式下的单引号(')引起来。例如,定义一个值为 a 的 char 型变量 letter,代码如下。
定义 boolean 型变量的代码如下。
Java 的基本数据类型可以分为三大类,即数值类型(6种)、字符类型(1种)和布尔类型(1种)。其中,数值类型包含整数类型(4种)和浮点类型(2种)。
Java 的基本数据类型如下图所示:
图 1 Java的基本数据类型示意图
接下来逐一讲解这 8 种基本数据类型。
1、整数类型
整数类型用于存储整数数值,这些整数数值既可以是正数,也可以是负数,还可以是零。例如,“截至 2019 年 5 月 21 日 7 时 11 分,您的话费余额为 0 元”,其中的 2019、5、21、7、11 和 0 等整数数值均属于整数类型。
Java 语言提供了 4 种整数类型,即 byte、short、int 和 long,这 4 种整数类型不仅占用的内存空间不同,取值范围也不同,具体如下表所示。
整数类型 | 占用的内存空间 | 取值范围 |
---|---|---|
byte | 1 个字节 | -128〜127 |
short | 2 个字节 | -32768~32767 |
int | 4 个字节 | -2147483648~2147483647 |
long | 8 个字节 | -9223372036854775808~9223372036854775807 |
1) byte型
byte 型被称作字节型,是占用内存空间最少的整数类型,即 1 个字节;取值范围也是整数类型中最小的,即 −128~127。例如,表示一个 byte 型变量 b 能取到的最大值的代码如下:
byte b; b = 127;上述代码等价于如下代码:
byte b = 127;但是,如果把 128 赋给 byte 型变量 b,那么 Eclipse 将会出现下图所示的错误提示。
图 2 Eclipse出现的错误提示
2) short型
short 型被称作短整型,占用 2 个字节的内存空间。因此,short 型变量的取值范围要比 byte 型变量大很多,即 −32768~32767。例如,先声明 short 型变量 min(表示“最小值”)和 max(表示“最大值”),再分别为变量 min 和 max 赋值,值分别为 −32768 和 32767,代码如下:
short min, max; min = -32768; max = 32767;上述代码等价于以下代码:
short min = -32768; short max = 32767;
3) int型
int 型被称作整型,是 Java 语言默认的整数类型。所谓默认的整数类型,如果一个整数不在 byte 型或 short 型的取值范围内,或者整数的格式不符合 long 型的要求,那么当 Java 程序被编译时,这个整数会被当作 int 型。
int 型占用 4 个字节的内存空间,其取值范围是 −2147483648~2147483647。虽然 int 型变量的取值范围较大,但使用时也要注意 int 型变量能取到的最大值和最小值,以免因数据溢出产生错误。
例如,把 9787569205688 赋给一个 int 型变量 numbe r时,Eclipse 将出现错误提示,如下图所示。
图 3 Eclipse出现的错误提示
那么书号 9787569205688 要赋给哪种整数类型的变量,Eclipse 才不会报错呢?答案就是马上要讲到的 long 型。
4) long型
long 型被称作长整型,占用 8 个字节的内存空间,其取值范围是 −9223372036854775808 ~ 9223372036854775807。如果把图 3 所示的 int 修改为 long,其中的错误提示就会消失吗?修改后 Eclipse 的显示如下图所示。
图 4 修改后Eclipse的显示
不难看出,错误提示依然存在。这是因为在为 long 型变量赋值时,须在数值的结尾处加上 L 或者 l(小写的 L),所以图 4 所示的代码要修改为如下格式。
long number = 9787569205688L;这样,图 4 所示的错误提示就会消失。
2、浮点类型
浮点类型用于存储小数数值。例如,一把雨伞售价为 100.79 元、4 块蛋挞售价为 15.8 元,其中的 100.79、15.8 等小数数值均属于浮点类型。Java 语言把浮点类型分为单精度浮点型(float型)和双精度浮点型(double型)。float 型和 double 型占用的内存空间和取值范围如下表所示。
浮点类型 | 占用的内存空间 | 取值范围 |
---|---|---|
float | 4 个字节 | -3.4x1038~3.4x1038 |
double | 8 个字节 | -1.8x10308~1.8x10308 |
1) float型
float 型被称作单精度浮点型,占用 4 个字节的内存空间,其取值范围为 −3.4×1038~3.4×1038。需要注意的是,在为 float 型变量赋值时,必须在数值的结尾处加上 F 或者 f,就如同前面介绍的为 long 型变量赋值的规则一样。
例如,定义一个表示身高、值为 1.72 的 float 型变量 height,代码如下。
float height = 1.72F;数值结尾处的 F 还可以写作小写形式,代码如下。
float height = 1.72f;
2) double型
double 型被称作双精度浮点型,是 Java 语言默认的浮点类型,占用 8 个字节的内存空间,其取值范围为 -1.8×10308~1.8×10308。因为 double 型是默认的浮点类型,所以在为 double 型变量赋值时,可以直接把小数数值写在等号的右边。
例如,定义一个表示体温、值为 36.8 的 double 型变量 temperature,代码如下。
double temperature = 36.8;
3、字符类型
char 型即字符类型,用于存储单个字符,占用 2 个字节的内存空间。定义 char 型变量时,char 型变量的值要用英文格式下的单引号(')引起来。例如,定义一个值为 a 的 char 型变量 letter,代码如下。
char letter = 'a'; // 把小写字母a赋给了char型变量letter
4、布尔类型
boolean 型被称作布尔类型,boolean 型变量的值只能是 true 或 false,用于表示逻辑上的“真”或“假”。定义 boolean 型变量的代码如下。
boolean yes = true; boolean no = false;