Java学习之旅第一季-9:数据类型之整型数值类型

顾名思义,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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值