/*
面试题:
byte b1=3,b2=4,b;
b=b1+b2;
b=3+4;
哪句是编译失败的呢?为什么呢?
b = b1 + b2;是有问题的。
因为变量相加,会首先看类型问题,最终把结果赋值的也会考虑类型问题。
常量相加,首先做加法,然后看结果是否在赋值的数据类型范围内,如果不是,才报错。
*/
package test922;
public class DataTypeDemo {
public static void main(String[] args) {
// 定义了三个byte类型的变量,b1,b2,b3
// b1的值是3,b2的值是4,b没有值
byte b1 = 3, b2 = 4, b;
// 这个是类型提升,所以有问题
// Type mismatch: cannot convert from int to byte
// b = (b1 + b2);
b = (byte) (b1 + b2);
System.out.println(b);
b = 3 + 4;// 常量,先把结果计算出来,然后看是否在byte的范围内,如果在就不报错。
System.out.println(b);
}
}
运行结果:
7
7