優先順位 | 種類 | 演算子 | 例 | 注意 |
1(最高) | 後置演算子 | (引数) [] . ++ -- |
readLine() array[0] r.width i++ i-- |
|
2 | 単項演算子 | ++ -- + - ~ ! |
++i --i +100 -1 ~1 !ok |
ビットの反転 論理の反転 |
3 | 生成とキャスト演算子 | new (型) |
new Rectangle() (int)c |
|
4 | 積と商の演算子 | * / % |
1 * 2 3 / 2 365 % 7 |
剰余の計算 |
5 | 和と差の演算 | + - |
"error" + e 3 - 2 |
文字列なら連結になる |
6 | シフト演算子 | << >> >>> |
1 << n value >> 1 value >>> 1 |
左シフト 右シフト 符号無しの右シフト (最上位ビットは常に0) |
7 | 関係演算子 | < > <= >= instanceof |
i < 10 p > 50 20 <= age 17 >= age obj instanceof Rectangle |
|
8 | 等値演算子 | == != |
answer == 100 obj != null |
|
9 | ビット積演算子 | & | value & BITMASK | |
10 | ビット排他的論理和 演算子 |
^ | value ^ CRYPTMASK | |
11 | ビット和演算子 | | | value | OKFLAG | |
12 | 論理積演算子 | && | i < a.length && a[i] >100 | 左がfalseなら右は評価しない |
13 | 論理和演算子 | || | left == 0 || right == 0 | 左がtrueなら右は評価しない |
14 | 条件演算子 | ? : | cond ? x : y | condがtrueなら式の値はx、 falseならy |
15(最低) | 代入演算子 | = += -= *= /= %= >>= <<= >>>= &= ^= |= |
n = 0; i += 100; i -= 100; value *= 10; value /= 10; days %= 7; value >>= 1; value <<= 1; value >>>= 1; value &= BITMASK; value ^= CRYPTMASK; value |= OKFLAG; |
符号無し右シフト |