在實(shí)際的開發(fā)中,可能在一個(gè)運(yùn)算符中出現(xiàn)多個(gè)運(yùn)算符,那么計(jì)算時(shí),就按照優(yōu)先級(jí)級(jí)別的高低進(jìn)行計(jì)算,級(jí)別高的運(yùn)算符先運(yùn)算,級(jí)別低的運(yùn)算符后計(jì)算,具體運(yùn)算符的優(yōu)先級(jí)見下表:
運(yùn)算符優(yōu)先級(jí)表
優(yōu)先級(jí) | 運(yùn)算符 | 結(jié)合性 |
1 | () [] . | 從左到右 |
2 | ! +(正) -(負(fù)) ~ ++ -- | 從右向左 |
3 | * / % | 從左向右 |
4 | +(加) -(減) | 從左向右 |
5 | << >> >>> | 從左向右 |
6 | < <= > >= instanceof | 從左向右 |
7 | == != | 從左向右 |
8 | &(按位與) | 從左向右 |
9 | ^ | 從左向右 |
10 | | | 從左向右 |
11 | && | 從左向右 |
12 | || | 從左向右 |
13 | ?: | 從右向左 |
14 | = += -= *= /= %= &= |= ^= ~= <<= >>= >>>= | 從右向左 |
說明:
1、 該表中優(yōu)先級(jí)按照從高到低的順序書寫,也就是優(yōu)先級(jí)為1的優(yōu)先級(jí)最高,優(yōu)先級(jí)14的優(yōu)先級(jí)最低。
2、 結(jié)合性是指運(yùn)算符結(jié)合的順序,通常都是從左到右。從右向左的運(yùn)算符最典型的就是負(fù)號(hào),例如3+-4,則意義為3加-4,符號(hào)首先和運(yùn)算符右側(cè)的內(nèi)容結(jié)合。
3、 instanceof作用是判斷對(duì)象是否為某個(gè)類或接口類型,后續(xù)有詳細(xì)介紹。
4、 注意區(qū)分正負(fù)號(hào)和加減號(hào),以及按位與和邏輯與的區(qū)別
其實(shí)在實(shí)際的開發(fā)中,不需要去記憶運(yùn)算符的優(yōu)先級(jí)別,也不要刻意的使用運(yùn)算符的優(yōu)先級(jí)別,對(duì)于不清楚優(yōu)先級(jí)的地方使用小括號(hào)去進(jìn)行替代,示例代碼:
int m = 12;
int n = m << 1 + 2;
int n = m << (1 + 2); //這樣更直觀
這樣書寫代碼,更方便編寫代碼,也便于代碼的閱讀和維護(hù)。