假设Java程序中存在 `byte a = 10; short b = 20; int c = 30; long d = 40;`,那么以下哪个表达式的计算结果数据类型会发生隐式类型提升,且提升后的数据类型为long?

答案解析

在Java中,当不同类型的数值进行运算时,会发生类型提升。byte和short会先提升为int类型,然后进行计算。A选项中,a+b+c的计算中,a和b先提升为int,然后相加,最后和c相加,结果为int类型。B选项中,a*b的计算结果为int类型,之后和d(long)进行相加,整个结果类型会提升为long类型。C选项中,b*c的计算结果为int类型,然后和a相加,结果类型为int。D选项中,a+b的结果为int类型,强制转换为int,再与c相加,最后结果类型为int。因此只有B选项最终结果会提升到long类型。
正确答案:B
随机推荐
开始刷题