class Swap {
public static void main(String[] args){
short a = 1;
//右边如果有变量的话,这两个数字都会转换为int型的然后在计算
// 右边为int型的值,赋值给byte型的会损失精度
// 错误: 可能损失精度
a = a + 1;
short b = 1;
//赋值语句错误
// 错误: 意外的类型
b + 1 =b;
}
}
short a=1;a=a+1;
首先我们要知道,数字默认为 int类型,对于short a = 1;这里编译器为我们自动判断 如果赋值没有超过short的表示范围,则赋值成功,如果超过了,则报错;对于a=a+1,首先进行 等号 右边的计算,a是short类型变量,与 int类型变量1 相加后,提升至int类型,在用short类型的 a 接收它,报错。处理方法 a = (short)(a+1);