第一题:byte b1=3,b2=4,b;b=b1+b2;b=3+4;哪句是编译失败的呢?为什么呢?b=b1+b2因为3和4是int类型的,在运算的时候会自动转换成int类型,但是由于自动转型只能向上转型不能向下转型到byte,所以会报错 12345678
第二题:byte by = 130;有没有问题?有问题如何解决?结果是多少呢?有,因为byte的范围在-128~127之间,130不在范围内解决方法:强制转换,结果为-126 1234
第三题: byte b = 10; b++; b = b + 1; 哪句是编译失败的呢?为什么呢? b=b+1 运算时自动分配存储空间为int,而自动转型只能向上转型不能向下转型 这些问题最重要的就是 变量在运算时因为它害怕两个byte相加超出返回,出现错误值,所以会转换成int再加,但是问题出来了,基本数据类型的自动转型只能向上转型, 不能向下转型,int转不回去了,出现的结果就是报错,而3+4这种操作是先加后赋值,就相当于7是byte类型的,但是如果是byte b=100+30呢?就会报错 1234567891011