
3.2 基本数据类型

视频讲解
在Java中有8种基本数据类型来存储数值、字符和布尔值,如图3.2所示。

图3.2 Java基本数据类型
3.2.1 整数类型
整数类型用来存储整数数值,即没有小数部分的数值。可以是正数,也可以是负数。整型数据在Java程序中有3种表示形式,分别为十进制、八进制和十六进制。
十进制:十进制的表现形式大家都很熟悉,如120、0、-127。
注意
除了数字0,不能以0作为其他十进制数的开头。
八进制:如0123(转换成十进制数为83)、-0123(转换成十进制数为-83)。
注意
八进制数必须以0开头。
十六进制:如0x25(转换成十进制数为37)、0Xb01e(转换成十进制数为45086)。
注意
十六进制数必须以0X或0x开头。
整型数据根据它所占内存大小的不同,可分为byte、short、int和long 4种类型。它们具有不同的取值范围,如表3.1所示。
表3.1 整型数据类型

下面以int型变量为例讲解整型变量的定义。
【例3.2】定义int型变量,实例代码如下:

在定义以上4种类型变量时,要注意变量的取值范围,超出相应范围就会出错。对于long型值,若赋给的值大于int型的最大值或小于int型的最小值,则需要在数字后加L或l,表示该数值为长整数,如long num = 2147483650L。
【例3.3】在项目中创建类Number,在主方法中创建不同数值型变量,并将这些变量相加,将和输出。(实例位置:\TM\sl\3.02)

程序运行结果如图3.3所示。

图3.3 不同数值型变量相加的和
3.2.2 浮点类型
浮点类型表示有小数部分的数字。Java语言中浮点类型分为单精度浮点类型(float)和双精度浮点类型(double),它们具有不同的取值范围,如表3.2所示。
表3.2 浮点型数据类型

在默认情况下,小数都被看作double型,若使用float型小数,则需要在小数后面添加F或f。可以使用后缀d或D来明确表明这是一个double类型数据,不加d不会出错,但声明float型变量时如果不加f,系统会认为变量是double类型,从而出错。下面举例介绍声明浮点类型变量的方法。
【例3.4】定义浮点类型变量,实例代码如下:
float f1 = 13.23f; double d1 = 4562.12d; double d2 = 45678.1564;
3.2.3 字符类型
1. char型
字符类型(char)用于存储单个字符,占用16位(两个字节)的内存空间。在定义字符型变量时,要以单引号表示,如's'表示一个字符,而"s"则表示一个字符串,虽然只有一个字符,但由于使用双引号,它仍然表示字符串,而不是字符。
使用char关键字可定义字符变量,下面举例说明。
【例3.5】声明字符型变量,实例代码如下:
char x = 'a';
由于字符a在unicode表中的排序位置是97,因此允许将上面的语句写成:
char x = 97;
同C和C++语言一样,Java语言也可以把字符作为整数对待。由于unicode编码采用无符号编码,可以存储65536个字符(0x0000~0xffff),所以Java中的字符几乎可以处理所有国家的语言文字。若想得到一个0~65536之间的数所代表的unicode表中相应位置上的字符,也必须使用char型显式转换。
【例3.6】在项目中创建类Gess,编写如下代码,实现将unicode表中某些位置上的字符以及一些字符在unicode表中的位置在控制台上输出。(实例位置:\TM\sl\3.03)

运行结果如图3.4所示。

图3.4 例3.6的运行结果
2. 转义字符
转义字符是一种特殊的字符变量,它以反斜杠“\”开头,后跟一个或多个字符。转义字符具有特定的含义,不同于字符原有的意义,故称“转义”。例如,printf函数的格式串中用到的“\n”就是一个转义字符,意思是“回车换行”。Java中的转义字符如表3.3所示。
表3.3 转义字符

将转义字符赋值给字符变量时,与字符常量值一样需要使用单引号。
【例3.7】使用转义字符,实例代码如下:

3.2.4 布尔类型
布尔类型又称逻辑类型,通过关键字boolean来定义布尔类型变量,只有true和false两个值,分别代表布尔逻辑中的“真”和“假”。布尔值不能与整数类型进行转换。布尔类型通常被用在流程控制中,作为判断条件。
【例3.8】声明boolean型变量,实例代码如下:
