運算符指定對操作數執行的運算。按操作數個數分:一元運算符(如 ++、--)、二元運算符(如 +、>)、三元運算符(? :)。按功能分為七大類:
.、下標 []、instanceof、new、型別轉換、方法調用 ())本文重點講解前六類。
| 運算符 | 用法 | 說明 |
|---|---|---|
+ | op1 + op2 | 加法 |
- | op1 - op2 | 減法 |
* | op1 * op2 | 乘法 |
/ | op1 / op2 | 除法 |
% | op1 % op2 | 取模(求餘) |
Java 特有擴展: + 運算符支援字串串接("abc" + "de" → "abcde")。與 C/C++ 差異: % 操作數可為浮點數(37.2 % 10 = 7.2)。
| 運算符 | 用法 | 說明 |
|---|---|---|
+ | +op | 正值 |
- | -op | 負值 |
++ | ++op / op++ | 加 1 |
-- | --op / op-- | 減 1 |
int i = 3;
int j = i++; // j=3, i=4 (先使用再遞增)
int k = ++i; // k=5, i=5 (先遞增再使用)
-- 同理。
public class ArithmeticOp {
public static void main(String[] args) {
int a = 5 + 4; // 9
int b = a * 2; // 18
int c = b / 4; // 4 (整數除法)
int d = b - c; // 14
int e = -d; // -14
int f = e % 4; // -2
double g = 18.4;
double h = g % 4; // 2.4 (浮點取模)
int i = 3;
int j = i++; // i=4, j=3
int k = ++i; // i=5, k=5
// 輸出驗證...
}
}
比較兩值,返回 boolean(true/false),非 C/C++ 的 1/0。
| 運算符 | 用法 | 返回 true 條件 |
|---|---|---|
> | op1 > op2 | op1 大於 op2 |
>= | op1 >= op2 | op1 大於等於 op2 |
< | op1 < op2 | op1 小於 op2 |
<= | op1 <= op2 | op1 小於等於 op2 |
== | op1 == op2 | op1 等於 op2 |
!= | op1 != op2 | op1 不等於 op2 |
注意: Java 允許任意類型(含物件)使用 ==/!= 比較引用是否指向同一物件;內容比較請用 equals()。
| op1 | op2 | op1 && op2 | op1 || op2 | !op1 |
|---|---|---|---|---|
| false | false | false | false | true |
| false | true | false | true | true |
| true | false | false | true | false |
| true | true | true | true | false |
短路求值:
&&:左運算元為 false 時,右運算元不求值。||:左運算元為 true 時,右運算元不求值。此特性常用於防護性編程:if (e != 0 && a/e > 5) 避免除零錯誤。
操作二進制位,操作數限整數與字符類型。除 ~ 為一元外皆為二元。
| 運算符 | 名稱 | 規則 |
|---|---|---|
~ | 按位取反 | 0→1, 1→0 |
& | 按位與 | 同為 1 則 1,否則 0 |
| | 按位或 | 同為 0 則 0,否則 1 |
^ | 按位異或 | 相異為 1,相同為 0 |
<< | 左移 | 低位補 0,高位捨棄 |
>> | 有號右移 | 高位補符號位 |
>>> | 無號右移 | 高位補 0 |
Java 採用補碼:正數最高位 0,負數最高位 1。-42 補碼計算:+42 (00101010) → 取反 (11010101) → +1 → 11010110。補碼優勢:零唯一(00000000)、-1 為全 1(11111111)。
int x = 21; // 00010101
int y = ~x; // 11101010 = -22 (非 -21!)
12 & 10 // 1100 & 1010 = 1000 (8)
熟練掌握運算符優先級、短路求值、補碼表示與位運算技巧,是編寫高效、正確 Java 程式的基礎。建議配合實際編碼練習,體會各運算符在流程控制、位元操作、數學運算中的實戰應用。