優先級從上到下依次遞減,最上面具有最高的優先級,逗號操作符具有最低的優先級。
相同優先級中,按結合順序計算。大多數運算是從左至右計算,只有三個優先級是從右至左結合的,它們是單目運算符、條件運算符、賦值運算符。
基本的優先級需要記住:
- 指針最優,單目運算優于雙目運算。如正負號。
- 先乘除(模),后加減。
- 先算術運算,后移位運算,最后位運算。請特別注意:
1 << 3 + 2 & 7
等價于(1 << (3 + 2)) & 7
. - 邏輯運算最后計算。
優先級表
運算符 | 結合性 |
---|---|
[ ] . ( ) (方法調用) | 從左向右 |
! ~ ++ -- +(一元運算) -(一元運算) | 從右向左 |
* / % | 從左向右 |
+ - | 從左向右 |
<< >> >>> | 從左向右 |
< <= > >= instanceof | 從左向右 |
== != | 從左向右 |
& | 從左向右 |
^ | 從左向右 |
| | 從左向右 |
&& | 從左向右 |
|| | 從左向右 |
?: | 從右向左 |
= += -= *= /= %= &= |= ^= <<= >>= >>= | 從右向左 |
, | 從左到右 |