1.复合赋值运算符会进行类型转换
byte a = 3; a = a + 3; a += 3
上述代码中,a = a + 3 ; 是错误的, a + 3整体是一个 int 类型,不能赋值给 byte
而 a += 3; 它等价于 a = (byte) a + 3;
2.三元运算符中,表达式 1 和表达式 2 必须是可以赋值给接收变量的类型(或可以自动转换)
int a = 1; int b = 2; int c = a < b? a : b;//对 int d = a < b? 1.1 : 1.3;// 错 int e = a < b? (int)1.1 : (int) 1.3; // 对 double f = a < b? a : b + 3; // 对
第2句 d 中,我们不能将一个 double 类型的变量赋值给 int 类型
而在 f 中, int 类型 可以存放在 double 中。



