byte a=1;
byte b=2;
byte c=a+b;//无法通过编译
byte d=1+2;//可以通过编译
因为byte类型再相加的时候,会自动转换成int类型,右边的int类型赋值给byte类型便会报错,加上强制类型转换可以通过编译。比如byte c= (byte)(a+b);
因为a+b是Integer类,不能直接赋值给Byte类,应将a+b转为byte类型先
主要原因是: byte+byte的结果并不是byte类型,提示需要强制转换为byte类型或者把等式左边类型改编为int。
为什么byte d=1+2,不报错,是因为byte类型的数据是单字节,可以表示十进制数的范围是-128~+127(第一位是符号位,代表正负数)