顾名思义,Java中的整型数据类型表示数学意义上的整数,在数学中整数包括正整数、负整数、零。
根据表示的数据范围大小不同(当然存储空间大小也不同),Java将整型数据类型分为4种:int、long、byte、short。
9.1 int数据类型
int数据类型是最常用的整型类型,没有什么特殊情况就使用它。int类型的数据大小为4个字节,表示32位的有符号数据类型。
其表示数据的范围是:-2,147,483,648 ~ 2,147,483,647 (-231 ~ 231-1)。
可使用Integer.MAX_VALUE和Integer.MIN_VALUE获得最大值与最小值。
使用int关键字声明该类型的变量:
int num = 1; //声明一个int类型的变量num,并赋初始值1
int num1, num2; //声明两个int类型的变量num1,num2,但未赋初始值
num1 = 10; // 为num1赋初始值10
num2 = 20; // 为num2赋初始值20
上面的代码片段中,1、10、20都是字面量,默认以10进制表示整数,这也是最常见的情况。
除此之外,int类型的整数还有其他进制的表现形式:
八进制(Octal):以0开头且至少两位,例如:
int num3 = 01736; // 初始值01736是8进制表示的整数
System.out.println(num3); // 使用时会自动以10进制计算,输出990
8进制的组成只有0-7这8个数,类似01384,076912都不是合法的8进制整数,在代码中为变量赋值会出现语法错误。
十六进制(Hexadecimal):以0x或0X开头,至少包含一个数(0-9a-fA-F)
int num4 = 0x129Af; // 初始值0x129Af是16进制表示的整数
System.out.println(num4); // 使用时会自动以10进制计算,输出76207
int num5 = 0X129Af; // 初始值0X129Af是16进制表示的整数
System.out.println(num5); // 使用时会自动以10进制计算,输出76207
同样的,类似0x129AGf,0X298h1都不是合法的16进制整数,在代码中为变量赋值会出现语法错误。
二进制(Binary):以0b或0B开头,至少包含一个数(0,1)
int num6 = 0b0101, num7 = 0B1010; // 声明两个变量,分别赋值为0b0101和0B1010
System.out.println(num6); // 使用时会自动以10进制计算,输出5
System.out.println(num7); // 使用时会自动以10进制计算,输出10
同样的,类似0B1410都不是合法的2进制整数,在代码中为变量赋值会出现语法错误。
另外需要注意,普通的整数字面量是10进制的int类型,所以不能超出int的范围。如:12345667890就不成立。
9.2 long类型
long类型的变量用于保存int类型变量存放不了的整型数据,它占用8个字节,是64位有符号数据,也称为长整型。
范围是-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807(-263 ~ 263-1)
可使用Long.MAX_VALUE和Long.MIN_VALUE获得最大值与最小值
使用long关键字声明该类型的数据,但是为了表示数据是long类型的会以ll或L结尾表示:
long num1=100L; // 100L表示这是一个长整型的字面量
long num2=12345667890l; // 100L表示这是一个长整型的字面量
不建议结尾为字母l,因为字母l和数字1很容易造成阅读上的误解
默认10进制,也可以表示为2进制,8进制或16进制,就不再赘述了。
另外,也可将int类型字面量整数赋值给改类型的变量,编译器会自动进行类型转换。如:
long num3 = 1;
9.3 byte类型
byte数据类型占用1个字节,表示一个8位有符号数据,其范围:-128 ~ 127 (-27 ~ 27-1)。
可使用Byte.MAX_VALUE和Byte.MIN_VALUE获得最大值与最小值。
使用byte关键字声明该类型的变量:
byte num1 = 121; //声明变量num1,赋初始值为121
上面代码中的初始值121实际上是一个int类型的字面量,只有其范围在byte允许的范围内,即可自动转换类型。
但是初始值超出byte允许的范围,则会出现语法错误,如:
byte num1 = 1210;
默认10进制,也可以表示为2进制,8进制或16进制,就不再赘述了。
使用场景主要有两个:
- 处理来自网络或文件数据流
- 在处理可能与Java的其他内置类型不直接兼容的原始二进制数据
9.4 short类型
short数据类型可能是使用最少的数据类型了,它占用2个字节,表示一个16位的有符号数,其范围:-32768 ~ 32767 (-215 ~ 215-1)。
可使用Short.MAX_VALUE和Short.MIN_VALUE获得最大值与最小值。
使用short关键字声明:
short num1 = 12345;
使用时与byte类似,为其赋的值要注意范围不能超出,也支持2进制,8进制或16进制。
9.5 小结
本小节主要介绍了Java中4种整型数据类型的使用和注意点。
本小节完整代码位于:https://gitcode.com/tanlan2012/javastudy1/tree/master/src/main/java/com/laotan/article9
1952

被折叠的 条评论
为什么被折叠?



