为了账号安全,请及时绑定邮箱和手机立即绑定

一道面试题

一道面试题

JHsssss 2016-11-18 10:47:11
byte b1=1,b2=2,b3,b6;  final byte b4=4,b5=6;  b6=b4+b5;  b3=(b1+b2);  System.out.println(b3+b6); //为什么b3=(b1+b2)会出现类型不匹配,为什么(b1+b2)是int类型的呢?
查看完整描述

1 回答

已采纳
?
忘性最大的人

TA贡献118条经验 获得超37个赞

final类型在基本运算时不转型,而byte不被final修饰的话,两个相加会自动转型提升为int,向下需要强制转型为byte,默认的整形是int类型嘛。
查看完整回答
反对 回复 2016-11-18
  • JHsssss
    JHsssss
    再请教一下,如果是char类型相加,是不是也会强制转换成int类型呢?char字符是不是按ASCII码值转换?
  • JHsssss
    JHsssss
    谢谢,我试试去
  • 1 回答
  • 0 关注
  • 1235 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信