Java类型提升

文章讲述了Java编程中不同类型数据(如int与long、byte与byte)混合运算时,数据类型较小的会提升到较大类型以避免数据丢失。重点讲解了int与long、byte与byte的运算规则以及正确处理方式。
摘要由CSDN通过智能技术生成

类型提升

不同类型的数据之间相互运算的时候,数据类型小的会被提升到数据类型大的。


1.int与long之间:int会被提升为long

int a = 10;

long b = 20L;

int c = a + b;//编译出错:a+b==>int + long--->long + long赋值给int时会丢失数据

long d = a + b;//编译成功:a+b==>int + long --->long + long赋值给long

2.byte与byte的运算

byte a = 10;

byte b = 20;

byte c = a + b;

System.out.println(c);



//编译报错

Test.java:5:错误:不兼容的类型:从int转换到byte可能会有损失

byte c = a + b;

^

结论:byte和byte都是相同类型,但是出现编译报错,原因是,虽然a和b都是byte类型,但是计算a + b会将a和b都提升称为int类型,再进行计算,得到的结果也是int类型,这时赋值给c,就会出现上述错误。

由于计算机的CPU通常是按照4个字节为单位从内存中读写数据,为了硬件上实现方便,诸如byte和short这种低于4个字节的类型,会先提升成int,再参与计算。

正确的写法:

byte a = 10;

byte b = 20;

byte c = (byte)(a+b);

System.out.println(c);

【类型提升小结】:

  1. 不同类型的数据混合运算,范围小的会提升成范围大的

  2. 对于short,byte这种比4个字节小的类型,先会提升成4个字节的int,再运

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值