
2.3 数据类型
大自然的事物千奇百怪。在Java编程中,也存在很多种不同的数据类型,如整数、小数、字符等。这些不同的类型都需要用不同的数据类型来进行定义,从而能使得所有的数据进行有效的区分。下面简单介绍一下Java中的数据类型。
Java的数据类型一般分为两大类:基本数据类型和引用数据类型,如图2.1所示。

图2.1 Java数据类型
基本数据类型包含3个大类,分别是数值型、字符型(char)和布尔型(boolean)。数值型又可分为整数类型和浮点类型。其中,整数类型包括字节型(byte)、短整型(short)、整型(int)和长整型(long),浮点类型包含浮点型(float)和双精度型(double)。这些基本数据类型是由程序设计语言提供的,无法再进行划分,并且在内存中占用的字节数是固定的,不会随着软件和硬件环境的改变而发生变化。引用数据类型一般是由多个基本数据类型组成的,用来作为特殊的数据类型使用。
在系统运行时,每一种数据类型都是存储在内存中的。对于基本数据类型来说,每一类都有唯一的对应类型关键字,如表2-2所示。
表2-2 基本数据类型的内存存储

接下来对表格进行分解,按照整型、浮点型、字符型和布尔型来讲解。
注意
表2-2中数据类型占用的字节数是在32位JVM中获取的数值。
2.3.1 整型
整型变量一般用来表示整数。整型类型不同,整型变量能够表示的数据大小也不同,默认的为int。整型的使用如示例2-1所示。
【示例2-1】整型变量的使用

程序编译后,运行结果如下:

示例2-1中简单定义了一个int型变量、一个short变量,然后对其进行了加法操作。在实际使用中,可以根据目标数据的最大值来决定使用哪种类型。
注意
long类型的数据,结尾要有“l”或“L”来表明长整型身份。
2.3.2 浮点型
浮点型一般用来表示小数。数据类型的不同,浮点型变量能够表示的精度也不同,Java中浮点数的默认类型为double。浮点数可以使用科学计数法来表示,一般使用指数e或E尾数,如示例2-2所示。
【示例2-2】浮点型变量的使用

程序编译后,运行结果如下:

示例2-2中定义了两个double类型变量,用来表示两个小数,并且使用新的变量来表示周长。
注意
float类型的数据,结尾要有“f”或“F”来表明浮点型的身份;double类型的数据,结尾可加“d”或“D”,也可以不加,因为浮点数默认是double。
2.3.3 字符型
字符型主要用来表示单个字符。字符需要使用单引号引起来,例如:

对于第一个示例来说,定义了一个字符型变量a,其数值为'a'。而对于第二个示例来说,定义一个字符型变量asciiChar,并赋值为65。二者都是对的,因为所有的字符都是按照ASCII码的数值存储在系统中的,所以使用字符'a'和65都可以表示字符型变量,其中65对应的字符为'A'。字符型变量的使用如示例2-3所示。
【示例2-3】字符型变量的使用

程序编译后,运行结果如下:

通过示例2-3的运行结果可以看出,虽然数值都是65,但是变量num属于整型变量,因此其值就是65,不会发生任何变化;对于变量assicChar来说,因为是字符类型,所以在输出时会转换为ASSIC字符'A'。
2.3.4 布尔型
布尔型一般用来标识逻辑判断的结果,使用true标识逻辑真,使用false标识逻辑假。布尔型变量的使用如示例2-4所示。
【示例2-4】布尔型变量的使用

程序编译后,运行结果如下:

对于整数2和3来说,2小于3是成立的,因此其逻辑判断的结果为ture,反之亦然。