Java 操作符是用于操作變量和值的特殊符號,主要分為以下幾類:
1. 算術運算符
用于執行基本的數學運算:
+
:加法(也可用于字符串拼接)-
:減法*
:乘法/
:除法(整數相除取整數部分)%
:取余(模運算)++
:自增(前綴先增后用,后綴先用后增)--
:自減(規則同自增)
示例:
int a = 10, b = 3;
System.out.println(a + b); // 13
System.out.println(a % b); // 1
System.out.println(a++); // 10(先輸出后自增)
2. 賦值運算符
用于給變量賦值:
=
:基本賦值+=
:相加后賦值(a += b
?等價于?a = a + b
)-=
:相減后賦值*=
:相乘后賦值/=
:相除后賦值%=
:取余后賦值
示例:
int x = 5;
x += 3; // 等價于 x = x + 3,結果為8
3. 比較運算符
用于比較兩個值,返回布爾值(true
/false
):
==
:等于!=
:不等于>
:大于<
:小于>=
:大于等于<=
:小于等于
示例:
int m = 5, n = 10;
System.out.println(m == n); // false
System.out.println(m < n); // true
4. 邏輯運算符
用于連接布爾表達式,返回布爾值:
&&
:邏輯與(短路與,兩邊都為true
才返回true
,左邊為false
則不執行右邊)||
:邏輯或(短路或,兩邊有一個為true
就返回true
,左邊為true
則不執行右邊)!
:邏輯非(取反,!true
為false
)
示例:
boolean p = true, q = false;
System.out.println(p && q); // false
System.out.println(p || q); // true
System.out.println(!p); // false
5. 位運算符
對整數的二進制位進行操作:
&
:按位與(對應位都為 1 則為 1)|
:按位或(對應位有一個為 1 則為 1)^
:按位異或(對應位不同則為 1)~
:按位非(取反,0 變 1,1 變 0)<<
:左移(將二進制位向左移動指定位數,右邊補 0)>>
:右移(將二進制位向右移動指定位數,正數左補 0,負數左補 1)>>>
:無符號右移(無論正負,左補 0)
示例:
int c = 6; // 二進制 0110
int d = 3; // 二進制 0011
System.out.println(c & d); // 2(二進制 0010)
System.out.println(c << 1); // 12(二進制 1100)
6. 三元運算符(條件運算符)
格式:條件表達式 ? 表達式1 : 表達式2
- 若條件為
true
,返回表達式 1 的值;否則返回表達式 2 的值。
示例:
int score = 85;
String result = score >= 60 ? "及格" : "不及格";
System.out.println(result); // 及格
7. instanceof 運算符
用于判斷對象是否為某個類(或接口)的實例,返回布爾值。
示例:
String str = "Hello";
System.out.println(str instanceof String); // true
這些運算符在 Java 中按優先級從高到低執行,可通過括號()
改變執行順序
8. 運算符執行流程
a && b || c
在 Java 里,表達式a && b || c的執行流程是由運算符優先級和短路規則共同決定的。下面為你詳細分析:
優先級規則
- &&(邏輯與)的優先級要比||(邏輯或)高。
- 所以,這個表達式會先計算a && b,然后再用計算結果和c進行||運算。
執行步驟
- 計算a && b:
- 先對a進行求值。
- 若a的值為false,由于&&的短路特性,不會再對b求值,整個a && b的結果直接為false。
- 若a的值為true,則繼續對b求值:
- 當b為true時,a && b的結果為true。
- 當b為false時,a && b的結果為false。
- 計算(a && b) || c:
- 若a && b的結果是true,基于||的短路特性,不會對c求值,整個表達式的結果就是true。
- 若a && b的結果是false,則需要對c求值:
- 若c為true,整個表達式的結果為true。
- 若c為false,整個表達式的結果為false。