计算机编程语言是用来控制计算机的行为及操作,协助人类解决现实中的问题,其能表达的数据类型也是从实际中提取并抽象出来形成的数据结构描述。
例如:数学中数的基础分类有正整数、负整数、小数等类别,数学中所有关于数的运算都是在基础分类上进行的。计算机出现之前,数学家们用稿纸进行大量的数学运算以求证数学问题和科学计算,这耗费了数学家们太多的精力。随着计算机科技的发展,大量复杂的数学运算交给计算机来执行,极大提高了计算效率,也让数学家们从复杂地数学运算中摆脱出来。
数学运算包含大量的计算表达式,计算机程序需要有连续处理计算表达式和计算数据的处理能力,下面是一个简单的四则运算表达式:
15.8+20*31.5-30
计算机程序要处理上述表达式,就需要具备存储小数、整数、运算符的能力。Java语言提供了存储小数、整数、运算符的基本数据类型。下图是表达式数据类型到Java数据类型的映射图。
图 4-3 表达式数据类型到Java数据类型
简要说明一个解析计算表达式并存储运算符和运算数的事例
为说明问题起见,给出一个简化计算表达式:8.25+30
声明三个变量用来存储运算数和运算符
四则运算器程序在计算上述计算表达式时,首先从左到右扫描表达式。假设本次扫描不考虑优先级运算,只是完成提取运算数和运算符的功能。扫描过程如下:如果是运算数,判断是整型还是小数,整型赋值给intNum,如果是小数赋值给floatNum,如果是运算符赋值给op。下图是扫描完成后,变量在内存储器的存储情况。
图 4-4 不同数据类型的变量在存储器的
从上图可以看出,不同数据类型的变量在存储器占用的空间也不相同。数据类型为字符型的变量在存储器占用一个字节的空间,数据类型为整型的变量在存储器占用四个字节的空间,数据类型为浮点型的变量在存储器也占用四个字节的空间。Java基本数据类型都有固定的取值范围空间,不会随着机器硬件环境或者操作系统的改变而改变,因此Java程序的可移植性要强于其它编程语言。
Java基本数据类型见下图。
图 4-5 Java基本数据类型
Java基本数据类型包括数值型、字符型和布尔型。数值型又分为整数类型和浮点类型。Java基本数据类型是构成其它复合类型的基础,后面几节将分别讲述整数、浮点、字符和布尔型的具体应用和取值范围。
Java基础数据类型是Java语言最基础的数据单元,其它类型的数据结构都是由基础数据组合而成。不同类型的数据占用不同的存储空间,声明变量的存储空间大小由所属的数据类型空间决定。例如:int类型的变量占用四个字节的存储空间、char类型的变量占用一个字节的存储空间等。
(1)请列举Java语言有哪些基本数据类型?
(2)在某段程序代码中,声明了一个int型变量,该变量占用存储空间为多少个字节?
A.2个字节
B.4个字节
C.1个字节
D.8个字节
(3)如果需要存储数值为15.8的数据,需要声明什么类型的变量?
A.整型
B.浮点型
C.字符型
D.布尔型