本帖最后由 海狮 于 2015-10-19 00:23 编辑
=a+4与a+=4有所不同 程序一: class TestDemo{ public static void main(String[] arg){ short a =8; a+=4; System.out.println(a);//结果为12}} 程序二: class TestDemo{ public static void main(String[] arg){ short a =8; a=a+4; System.out.println(a);}} 结果出现编译错误: TestDemo.java:4: 错误: 不兼容的类型: 从int转换到short可能会有损失 a=a+4; ^ 1 个错误 原因:执行s+=4;时。编译器自动把short类型的变量a转为int类型再参与运算,然后把int类型结果强制转换为short;而s=s+4;编译器不进行强制转换。所以int类型结果赋值给short类型出现错误。
|