https://www.nowcoder.com/test/question/done?tid=21669341&qid=25211#summary
关于下面代码片段叙述正确的是(语句:b3=b1+b2编译出错)
byte b1=1,b2=2,b3,b6;
final byte b4=4,b5=6;
b6=b4+b5;
b3=(b1+b2);
System.out.println(b3+b6);
解析:
被final修饰的变量是常量,这里的b6=b4+b5可以看成是b6=10;在编译时就已经变为b6=10了;
而b1和b2是byte类型,java中进行计算时候将他们提升为int类型,再进行计算,b1+b2计算后已经是int类型,赋值给b3,b3是byte类型,类型不匹配,编译不会通过,需要进行强制转换。
Java中的byte,short,char进行计算时都会提升为int类型。
探讨Java中byte类型变量的运算与赋值规则,解释为何b1+b2的计算结果不能直接赋值给byte类型的b3,以及final修饰符的影响。
5777

被折叠的 条评论
为什么被折叠?



