1. 程式人生 > >[Java]運算子優先順序參考圖表

[Java]運算子優先順序參考圖表

在實際的開發中,可能在一個運算子中出現多個運算子,那麼計算時,就按照優先順序級別的高低進行計算,級別高的運算子先運算,級別低的運算子後計算,具體運算子的優先順序見下表:

運算子優先順序表

優先順序 運算子 結合性
1 () [] . 從左到右
2 ! +(正)  -(負) ~ ++ -- 從右向左
3 * / % 從左向右
4 +(加) -(減) 從左向右
5 << >> >>> 從左向右
6 < <= > >= instanceof 從左向右
7 ==   != 從左向右
8 &(按位與) 從左向右
9 ^ 從左向右
10 | 從左向右
11 && 從左向右
12 || 從左向右
13 ?: 從右向左
14 = += -= *= /= %= &= |= ^=  ~=  <<= >>=   >>>= 從右向左
說明:   1、 該表中優先順序按照從高到低的順序書寫,也就是優先順序為1的優先順序最高,優先順序14的優先順序最低。   2、 結合性是指運算子結合的順序,通常都是從左到右。從右向左的運算子最典型的就是負號,例如3+-4,則意義為3加-4,符號首先和運算子右側的內容結合。   3、 
instanceof作用是判斷物件是否為某個類或介面型別,後續有詳細介紹。   4、 注意區分正負號和加減號,以及按位與和邏輯與的區別   其實在實際的開發中,不需要去記憶運算子的優先級別,也不要刻意的使用運算子的優先級別,對於不清楚優先順序的地方使用小括號去進行替代,示例程式碼:          int m = 12;          int n = m << 1 + 2;          int n = m << (1 + 2); //這樣更直觀 這樣書寫程式碼,更方便編寫程式碼,也便於程式碼的閱讀和維護。