運算符是表達式的基因。本文系統整理 Java 七大類運算符,重點講解位運算與移位運算的底層邏輯、負數補碼表示、加密應用與性能優化技巧。
expr++ expr--++expr --expr +expr -expr ~ !* / % → + -<< >> >>>< > <= >= instanceof== !=&^|&&||? := += -= *= /= %= &= ^= |= <<= >>= >>>=| 運算符 | 名稱 | 規則 | 應用 |
|---|---|---|---|
& | 位與 (AND) | 同為 1 結果 1,否則 0 | 掩碼取位、判斷奇偶 (n & 1) == 1 |
| | 位或 (OR) | 同為 0 結果 0,否則 1 | 置位、合併標誌位 |
^ | 位異或 (XOR) | 相同 0,不同 1 | 交換變量 a^=b^=a^=b、簡易加密、校驗和 |
~ | 位非 (NOT) | 0↔1 翻轉 | 取反、構建掩碼 |
-x = ~x + 1 (按位取反加一)-x 的補碼等於 x-1 取反;x = ~(-x-1)<<x << n == x * 2^n (無溢出前提)int 32 位,long 64 位,byte/short/char 自動提升為 int33 << 1 == 1>>x >> n == x / 2^n (向下取整)>>><<>>,因左移無符號意義n << 3 (×8)、n >> 2 (÷4)(n & (n-1)) == 0n % 8 == n & 7 (除數為 2 的冪)a ^= b; b ^= a; a ^= b; (無臨時變量)READ=1<<0, WRITE=1<<1, EXEC=1<<2 → perm & READ != 0