例如:
short s = 4;
s = s + 5; // 编译失败. 运算结果为 int, 接收变量为 short
/*
有整型参与的二元运算, 表达式中 s 被提升为 int 型, 运算结果为 int 型,
而接收结果的变量 s 为 short 型, int 型无法赋值为 short 型(面试)。
2次运算, 先运算再赋值.
*/
--------------------------------------------------------------------------------
2. 复合赋值运算符 += -= *= /= %= &= |= ^= ~= <<= >>= >>>=
Compound Assignment Operators
作用: 把左右两边运算的值赋给左边, 必要时自动完成强制类型转换
例如:
short s = 4;
s += 5; //编译通过. 运算结果为 int, 接收变量为 short
/*
+= 运算符赋值时自动完成强制转换操作(面试)。
1次运算.
*/
--------------------------------------------------------------------------------
3. 自动类型提升/强制类型转换/赋值运算符示例
3.1 示例1
如 byte b=3;
b = b+2; // 编译错误(测试版本: jdk1.8)
// 运算结果为 int 型, 赋值语句语法错误, 需强转.