Java语言中,基本的整型数据类型有byte、short、int、long四种类型,用于需要不同存储空间的数据使用。整型有正整数和负整数之分,在Java语言中,规定整型的最高位为符号位,最高位为“0”表示正数,最高位为“1”表示负数,其它位表示数值。因此整型类型的数据能够表示的最小值为:-2n-1 —2n-1-1(n为该类型所占存储空间的二进制位数)。
其中,byte占用一个字节的存储空间,可表示的最小数值为-128,最大数值为127;
short占用二个字节的存储空间,可表示的最小数值为-32768,最大数值为32767;
int占用四个字节的存储空间,可表示的最小数值为-2147483648,最大数值为2147483647;
long占用四个字节的存储空间,可表示的最小数值为-9223372036854775808,最大数值为9223372036854775807。
整型变量可按如下方式声明:
在一条语句中,可以声明多个同一类型的整型变量,每个变量之间用英文逗号分隔:
整型变量可按如下方式初始化:
在初始化变量或为变量赋值时,常常会用到一些数值,这些值通常称为常量。Java语言中整型常量有三种不同的表示形式:十进制、八进制和十六进制。
① 八进制整型常量:在八进制数值前面加前缀数字0,其数码取值为0—7,例如:023、0457、01329等;
② 十六进制整型常量:前缀为“0X”或“0x”,数码取值0—9、A—F、或a—f。例如:0X2A、0XA0、0Xffff等;
③ 十进制整型常量:既无前缀也无后缀。例如:236、56、7890等。
示例1: 整型常量声明:
当整型数据数值大小超出了可以表示的范围,而程序中又没有做数值范围的检查时,这个整型变量所输出的值将发生紊乱,且不是预期的运行结果,这种现象称为溢出。
示例2:int类型的溢出
在D盘Java目录下,新建“OverFlow.java”文件。用记事本打开“OverFlow.java”文件,输入以下代码:
编译“OverFlow.java”文件,在命令行窗口输入“javac OverFlow.java”并执行命令,编译器显示如下信息:
编译器给出过大的整数错误信息,num的数值明显超出的int所能表示的最大值。
示例2:byte类型的溢出
在D盘Java目录下,新建“ByteOverFlow.java”文件。用记事本打开“OverFlow.java”文件,输入以下代码:
编译“ByteOverFlow.java”文件,在命令行窗口输入“javac ByteOverFlow.java”并执行命令,编译器显示如下信息:
编译器给出可能损失精度的错误信息,原因是byte变量的最大值为127,数值129超出了byte所能表示的范围。编译器将数值129赋值给byCode时,将129强制转换为byte所能表示的范围,因此报出损失精度的错误信息。
程序声明的所有变量都要占用程序运行存储空间,对程序运行存储空间比较小的单片机、手机等设备,在程序设计时,要充分考虑变量所占的存储空间对内存空间的影响,使用byte可以表示的数值范围尽量不要用int类型,更不能使用long类型,在赋值时,一定要判断数值的范围大小,以免发生数值溢出问题。
(1)要存储一个long型的值,需要()字节的存储空间。
A.4
B.8
C.2
D.1
(2)程序需要存储一个数值为128的常量,可用的占用存储空间最小的的数据类型为()。
A. byte
B . long
C. int
D.short
(3)在Java语言中,数值128用十六进制表示为()。
A.80H
B.0X80
C.80
D.080