1、说出下面程序的问题。
byte b1=1;
byte b2=2;
byte b3=1+2;
byte b4=b1+b2;
byte b4=b1+b2;有问题,b1和b2是变量,变量的值是不确定的可以变化的,在编译的时候,编译器javac不确定b1+b2的结果是什么,因此会将结果以int类型进行处理,所以int不能赋值给byte,编译失败;
b3=1+2;没有问题,1和2为常量,在编译的时候,编译器已经确定了1+2的结果没有超过byte的取值范围。可以赋值给b3,所以b3=1+2正确。