public class Hello
{
public static void main(String[] args)
{
System.out.println("hello");
byte b1 = 3;
byte b2 = 3;
byte b3 = b1 + b2;
System.out.println(b3);
}
}
结果:
我的想法:这正是因为Java的健壮性?如果两个byte都是127,会损失精度,所以Java设计不允许这么做?在编译阶段就报错了。
所以啊,需要类型转换。
public class Hello
{
public static void main(String[] args)
{
System.out.println("hello");
byte b1 = 3;
byte b2 = 3;
byte b3 = (byte) (b1 + b2);
System.out.println(b3);
}
}
因为jvm层面,没有byte

b1,b2实际上是以int存储的