前言
由於表達式有多種運算,不同的運算順序可能得出不同結果甚至出現錯誤運算錯誤,因此不同的運算符有着不同的優先級來保證運算的合理性和結果的正確性、唯一性。不同的語言有着不同的運算符優先級,以下只列舉Java中運算符的優先級。
Java語言優先級
Java中運算符按優先順序列出了各種運算符。優先級高的運算符先結合,優先級低的運算符後結合,同一行中的運算符的優先級相同。
優先級 | 運算符分類 | 運算符 | 名稱 | 結合性 |
由
高 到 低 |
分隔符 | . [] ( ) | 點、方括號、圓括號 | 從左向右 |
一元運算符 | ! ~ ++ -- + - | 邏輯非、按位非、自增、自減、正號、負號 | 從右向左 | |
算術運算符 |
* / % | 乘、除、取餘 | 從左向右 | |
+ - | 加、減 | |||
移位運算符 | << >> >>> | 左移位運算符、帶符號右移位運算符、無符號右移 | 從左向右 | |
關係運算符 | < <= > >= instanceof | 小於、小於或等於、大於、大於或等於、確定某對象是否屬於指定的類 | 從左向右 | |
比較運算符 | == != | 等於、不等於 | 從左向右 | |
邏輯運算符 | & | 按位與 | 從左向右 | |
^ | 按位或 | |||
| | 按位異或 | |||
&& | 短路與 | |||
|| | 短路或 | |||
三目運算符 | ?: | 條件運算符 | 從右向左 | |
混合/賦值運算符 | = *= /= %= += -= <<= >>= >>>= &= *= |= | 略 | 從右向左 |