关于字节精度问题的困惑

时间:2015-12-15 14:02:25

标签: java byte type-conversion

我不理解以下Java代码背后的逻辑以及为什么第一行有效,而其他代码则不然:

//works
byte b = 50 * 2;

//throws precision error
byte b = 50;
b = b * 2;

//throws precision error
byte b = 100 * 2;

1 个答案:

答案 0 :(得分:0)

@Jon Skeet是的第二个也给出异常,因为java对这种情况应用隐式upcast意味着b * 50的输出是100但是它是int类型所以你必须向下转换为byte ...