首页 > 编程笔记

Java基本数据类型(8种)

编写 Java 程序时,使用变量前必须先确定数据类型。为此,Java语言提供了 8 种基本数据类型。

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 种整数类型不仅占用的内存空间不同,取值范围也不同,具体如下表所示。

表 1 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 型占用的内存空间和取值范围如下表所示。

表 2 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;

推荐阅读