黑马程序员技术交流社区
标题:
byte
[打印本页]
作者:
楠楠
时间:
2015-9-6 23:31
标题:
byte
byte b1=3,b2=4,b;
b=b1+b2;
b=3+4;
哪句是编译失败的呢?为什么呢?
作者:
然后呢8908
时间:
2015-9-6 23:32
我是来赚币的。。。
作者:
灬王一鹏
时间:
2015-9-6 23:32
这妹子谁家的 好漂亮啊
作者:
残影
时间:
2015-9-6 23:33
b=b1+b2; //这句会编译失败,因为b1+b2进行运算时,会自动提升为int运算数据类型,运算结果也自然为int,但是要赋值给b(byte)类型,会编译失败提示损失精度。 b=3+4; //编译成功。因为java有常量优化机制,会先进行3+4结果判断是否超出byte取值范围,如果没有超出,则编译通过。
作者:
刘登飞
时间:
2015-9-6 23:34
从两方面去回答这个题
b1和b2是两个变量,变量里面存储的值都是变化的,所以在程序运行中JVM是无法判断里面具体的值
byte类型的变量在进行运算的时候,会自动类型提升为int类型
byte b4 = 3 + 4;
3和4都是常量,java有常量优化机制,就是在编译的的时候直接把3和4的结果赋值给b4了
作者:
Rzzz
时间:
2015-9-6 23:36
第一句话 编译失败
作者:
小木全
时间:
2015-9-6 23:42
这也是一个班的
作者:
楠楠
时间:
2015-9-7 00:00
谢谢大家
作者:
湛泸007
时间:
2015-9-7 00:15
第一句编译会失败,存在类型转换问题
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2