混合赋值运算符做算数运算时不改变自身数据类型

本文详细解析了Java中的混合赋值运算符,如+=、-=等,并通过实例对比了不同运算方式下byte类型变量的处理差异。特别强调了在进行数据类型不同的运算时,Java如何自动进行类型转换。

Day03_SHJavaTraining_4-5-2017

1.混合赋值运算符(+= -= *= /= %=)

面试题:

1 /**
2     ①byte b = 100;
3     ②b = b + 500;
4     ③b += 500;
5     ④System.out.println("b=" + b);
6 第一种执行方式①②④,第二种执行方式①③④,这两种执行方式会不会报错?如果报错,写出原因,否则写出结果。
7 */

分析:
第一种执行方式:
  一定会报错。因为b是byte类型空间,只占一个字节,而同它运算的500,默认是int类型,占4个字节,由于数据范围小的数据类型和数据范围大的数据类型之间做运算,结果为数据范围大的数据类型,所以报错。
第二种执行方式:
    不会报错。因为混合赋值运算符做算数运算时, 如果得到的运算结果超出了其左边变量的数据类型的取值范围,计算机底层会自动将结果强制转换成混合赋值运算符左边变量的数据类型。结果为88。

转载于:https://www.cnblogs.com/EzraOholiabXue/p/Day03_SHJavaTraining_4-5-2017_01.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值