java中byte类型数据的运算

昨天做的一道面试题中出现了一个关于byte类型数据的运算,问的是这段程序的结果是什么:

 

A.语句输出13

B.语句:b6=b4+b5编译出错

C.语句:b3=b1+b2编译出错

D.运行抛出异常

我们将这段程序编辑到eclipse后发现只有b3=b1+b2编译出错,所以这道题目的答案是C。接下来我们来分析一下原因:

我们知道在Java中整数默认的数据类型是int类型,当我们直接使用使用byte类型来进行数据运算的时候就要特别注意了,因为两个byte类型的进行运算时jvm会对其进行优化出处理,即将byte类型转化为int来进行数据的运算。所以b1+b2得到的类型是int类型,此次上面程序会出现数据类型转换错误。

解决方法:将这条语句改为b3=b1+b2

但是一定要注意计算两个byte类型的数据时“+”和“+=”是不一样的。

用“+”进行运算:

用“+=”进行运算:

直接用“+”运算符会出现编译错误,但是用“+=”却不会出现编译错误。这是因为“+=”运算符会自动在将运算符右边的数据类型强制性转换位运算符左边的数据类型。

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值