1. 算数运算符

Java中的算数运算符有 +,-,*,/,%,++,—。与C/C++相同,包括截断。

2. 赋值运算符

  1. 赋值运算符:=。

  2. 扩展赋值运算符: +=,-+,*=,\=。

    扩展赋值运算符会自动把运算结果转换为当前变量的类型。

    1
    2
    3
    short a = 3;
    a = a + 1; // 错误。a + 1 是 int 类型 不可赋值给 short 类型
    a += 1; // 正确。会进行自动的类型转换

3. 比较运算符

Java中的比较运算符有 ==,!=,<,>,<=,>=。与C/C++相同。

4. 逻辑运算符

Java中的逻辑运算符有 &&,||,!。与C/C++相同。

5. 位运算符

Java中的位运算符有 &,|,^,~,<<,>>,>>>。

其中 << 与 >> 是带符号移位(移位时不考虑符号位)。

而 >>> 无符号右移,空位均补 0,注意没有 <<< 。

6. 三元运算符

Java中的三元运算符形式为:(条件表达式) ? (表达式1) : (表达式2)。 与C/C++相同。

7. Java中的运算符优先级

优先级 运算符 结合性
1 () [] . 从左到右
2 ! +(正) -(负) ~ ++ — 从右向左
3 * / % 从左向右
4 +(加) -(减) 从左向右
5 << >> >>> 从左向右
6 < <= > >= instanceof 从左向右
7 == != 从左向右
8 &(按位与) 从左向右
9 ^ 从左向右
10 | 从左向右
11 && 从左向右
12 || 从左向右
13 ?: 从右向左
14 = += -= *= /= %= &= |= ^= ~= <<= >>= >>>= 从右向左