以下例说之:
byte b = 3; //??? 3是一个int常量,但是会自动判断3是不是在byte类型的范围内
b = b + 2; //Type mismatch: cannot convert from int to byte
若非强制转换,则
b = (byte) (b + 2);
在看下例:(s = s + 5;/ s += 5;之间的区别)
short s = 4;
s = s + 5; //编译失败,因为s会被提升为int类型,运算后的结果还是int类型,无法short类型
s += 5; //编译通过,因为+=运算符在给s赋值时,自动完成了强转操作