变量相加和常量相加的区别
1.变量相加
报错原因:
1、byte与byte(或short,char)进行运算的时候会自动提升为int,两个int类型相加的结果也是int类型,再把int类型的值赋值给byte自然会报错。
2、b1和b2是两个变量,变量存储的值是变化的,在编译的时候无法判断里面具体的值,相加有可能会超出byte的取值范围。
2.常量相加
通过原因:
Java编译器有常量优化机制,在编译的时候就将常量的运算值计算出来了,而且常量运算的结果值在小数据类型的取值范围内,所以通过,如果不在小数据类型的取值范围内,编译就无法通过。