1. {
byte b=4;
b=3+7;
System.out.print(b);
}
输出:10
2.{
byte b=4;
byte b1=3;
byte b2=7;
b=b1+b2;
System.out.print(b);
}
输出:报错 可能会损失精度
解析:byte b=4 中,int类型的4为什么会赋值给b呢?b不是byte类型吗?原因是编译器在编译的时候,它会判断右边的数值是不是在字节这个范围内,如果在,把int类型的值做一次强转再赋给b;而2中的b1 b2是变量,值的范围不确定,编译时不能做检察,检察不了就会报错。(如问题分析有误,请大家不吝指证哦) |
|