第一题:
byte b1=3,b2=4,b;
b=b1+b2;
b=3+4;
哪句是编译失败的呢?为什么呢?
第二题:
byte by = 130;有没有问题?有问题如何解决?结果是多少呢?
有 byte类型范围是 -128~127
第三题:
byte b = 10;
b++;
b = b + 1;
byte b1=3,b2=4,b;
b=b1+b2;
b=3+4;
哪句是编译失败的呢?为什么呢?
第二句(b=b1+b2)
byte 在计算时自动转为int,所以会产生类型转换出错,可以改为 b = (byte) (b1 + b2);
第二题:
byte by = 130;有没有问题?有问题如何解决?结果是多少呢?
有 byte类型范围是 -128~127
第三题:
byte b = 10;
b++;
b = b + 1;
哪句是编译失败的呢?为什么呢?
b = b +1,1为int,先执行 b+1 后,类型变为int,所以会有类型转换错误。
可以改为 b += 1 或者 b = (byte) (b + 1)
byte类型的变量在进行运算的时候,会自动类型提升为int类型
进行混合运算的时候,byte,short,char不会相互转换,都会自动类型提升为int类型,其他类型进行混合运算的是小的数据类型提升为大的
byte,short,char -- int -- long -- float -- double