Java学习笔记 - 03

Java学习笔记 - 03

 

 

变量的数据类型

         使用数据类型的目的是为了限制变量中存储的数据,限制变量使用内存空间的大小,使程序更加高效,严谨。

         基本的数据类型有:

  • 整形
    整形可以分成四种,分别是:byte,short(短整型),int(整形),long(长整型)。
    byte型数据占用内存空间的大小为1字节。 数据范围是-128~127
    short型数据占用内存空间的大小为2字节。 数据范围是-32768~32767
    int型数据占用内存空间的大小为4字节。 数据范围是-2^31~(2^31 - 1),一般数据的默认类型都是int
    long型数据占用内存空间的大小为8字节。数据范围是-2^63~(2^63 - 1)

注:之所以分成四类,主要是所用数据的取值范围。过小的数据没必要用过大的数据类型存储,以免浪费内存空间。

byte b1 = 100;
//byte b2 = 200;  这一句会报错,因为200超出了byte的存储范围
byte b2 = (byte)200;//强制类型转换,数据损失,b2值为11001000,是一个负数

 在以上代码中,b1的值为100,但b2的赋值语句会报错,错误信息为“从int转换到byte可能会有损失”。这是因为byte类型的数据范围是-128~127,200超过了这个范围,不能存入byte型变量中。b1的赋值语句中,100(二进制数据为:00000000 00000000 00000000 01100100)也为整数,但因为100的有效数据可以直接放入byte中,因此计算机自动将常量100之前的所有空字节删去,向下自动类型转换int ->byte。200(‭进制数据为:00000000 00000000 00000000 11001000‬)也可强制类型转换成byte,但会有数据损失,存入byte自动删去前三字节的数据,变成11001000,这是一个负数。

 

byte b3=100;                    
byte b4=100;   
//byte b5=b3+b4; 报错信息:不兼容的类型: 从int转换到byte可能会有损失
byte b5=(byte)(b3+b4);        

以上代码中,b3,b4都是规范的byte型数据,但 b3 + b4的值超过了byte的存储范围。其实即使b3 = 1,b4 = 2,b3 +b4也会报错,因为b5并不知道两个byte类型中的数据相加后是否超过byte的存储范围,而b3 +b4是int型的数据,必须强制类型转换后才能存入,且可能会存在数据损失。

short类型存在和byte相同的问题。但这个问题在int和long类型中不存在。对int类型和long类型来说,多个数据相加时,若超出其存储范围,会有数据溢出,但不会报

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值