Java提供了一組豐富的運算子來操作變數, 我們可以將所有Java運算子劃分為以下幾個分類 -
- 算術運算子
- 關系運算子
- 按位運算子
- 邏輯運算子
- 賦值運算子
- 其他運算子
1. 算術運算子
算術運算子在數學運算式中的使用方式與在代數中使用的方式相同,下表列出了算術運算子的使用示例 -
假設整數型別變數A的值為:10,變數B的值為:20,則 -
| 運算子 | 描述 | 示例 |
|---|---|---|
+ |
加法運算子,第一個運算元加上第二個數運算元 | A + B結果為:30 |
- |
減法運算子,從第一個運算元減去第二個運算元 | A - B結果為:-10 |
* |
兩個運算元相乘 | A * B結果為:200 |
/ |
左運算元除以右運算元回傳模值 | B / A結果為:2 |
% |
左運算元除以右運算元回傳余數 | B / A結果為:0 |
++ |
將運算元的值增加1 |
A++,則A的值為:11 |
-- |
將運算元的值減1 |
A--,則A的值為:9 |
2. 關系運算子
Java語言支持以下關系運算子,假設變數A的值是10,變數B的值是20,則 -
| 運算子 | 描述 | 示例 |
|---|---|---|
== |
等于運算子,檢查兩個運算元的值是否相等,如果相等,則條件變為真, | A==B結果為假, |
!= |
不等于運算子,檢查兩個運算元的值是否不相等,如果不相等,則條件變為真, | A!=B結果為真, |
> |
大于運算子,檢查左運算元的值是否大于右運算元的值,如果大于,則條件變為真, | A>B結果為假, |
< |
小于運算子,檢查左運算元的值是否小于右運算元的值,如果小于,則條件變為真, | A<B結果為真, |
>= |
大于或等于運算子,檢查左運算元的值是否大于等于右運算元的值,如果大于或等于,則條件變為真, | A>=B結果為假, |
<= |
小于或等于運算子,檢查左運算元的值是否小于或等于右運算元的值,如果小于或等于,則條件變為真, | A<=B結果為真, |
3. 按位運算子
Java定義了幾個按位運算子,可以應用于整數型別, 如:long,int,short,char和byte,按位運算子處理位并執行逐位運算, 假設a = 60且b = 13; 采用二進制格式,它們將如下 -
a = 0011 1100
b = 0000 1101
-----------------
a&b = 0000 1100
a|b = 0011 1101
a^b = 0011 0001
~a = 1100 0011
下面的表中列出了按位運算子,假設整數變數A=60,變數B=13,那么 -
| 運算子 | 描述 | 示例 |
|---|---|---|
& |
二進制AND運算子,如果存在于兩個運算元中,則它會將結果復制到結果中, | A & B的結果為:12,也就是:0000 1100 |
| Ι | 二進制OR運算子,如果存在于任一運算元中,則復制一位, | A Ι B 的結果為:61,也就是:0011 1101 |
^ |
二進制異或運算子,如果在一個運算元中設定但不在兩個運算元中設定,則復制該位, | A ^ B的結果為:49,也就是:0011 0001 |
~ |
二元一元補充運算子是一元的,具有“翻轉”位的效果, | ~A的結果為:-61,也就是:1100 0011 |
<< |
二進制左移運算子,左運算元值向左移動右運算元指定的位數, | A << 2的結果為:240,也就是:1111 0000 |
>> |
二進制右移運算子,左運算元值向右移動右運算元指定的位數, | A >> 2的結果為:15,也就是:1111 |
>>> |
右移零填充運算子, 左運算元值向右移動右運算元指定的位數,移位值用零填充, | A >>>2的結果為:15,也就是:0000 1111 |
4. 邏輯運算子
下表列出了邏輯運算子 -
假設布爾變數A的值為:true,變數B 的值為:false,則 -
| 運算子 | 描述 | 示例 |
|---|---|---|
&& |
邏輯AND運算子, 如果兩個運算元都不為零,則條件成立, | (A && B)結果為:false |
| ΙΙ | 邏輯OR運算子, 如果兩個運算元中的任何一個非零,則條件變為真, | (A ΙΙ B)結果為:true |
! |
邏輯非運算子,用于反轉其運算元的邏輯狀態, 如果條件為真,則口邏輯NOT運算子將為false, |
!(A && B)結果為:true |
5. 賦值運算子
以下是Java語言支持的賦值運算子 -
| 運算子 | 描述 | 示例 |
|---|---|---|
= |
簡單賦值運算子, 將右側運算元的值分配給左側運算元, | C = A + B將A + B的值分配給C, |
+= |
相加與賦值運算子, 它將右運算元相加到左運算元并將結果分配給左運算元, | C += A等于C = C + A, |
-= |
減去與賦值運算子, 它從左運算元中減去右運算元,并將結果賦給左運算元, | C -= A等于C = C - A, |
*= |
乘以與賦值運算子, 它將右運算元與左運算元相乘,并將結果賦給左運算元, | C *= A等于C = C * A, |
/= |
除以與賦值運算子, 它將左運算元除以右運算元,并將結果賦給左運算元, | C /= A等于C = C / A, |
%= |
模數與賦值運算子, 它使用兩個運算元來計算獲取模數,并將結果賦給左運算元, | C %= A等于C = C % A, |
<<= |
左移與賦值運算子, | C <<= 2與C = C << 2相同 |
>>= |
右移與賦值運算子, | C >>= 2與C = C >> 2相同 |
&= |
按位與賦值運算子, | C &= 2與C = C & 2相同 |
^= |
按位異或和賦值運算子, | C ^= 2與C = C ^ 2相同 |
| Ι= | 按位包含或與賦值運算子, | C Ι= 2與C = C Ι=2相同 |
6. 其它運算子
Java語言支持的其他運算子很少,
6.1. 條件運算子(?:)
條件運算子也稱為三元運算子, 此運算子由三個操作陣列成,用于計算布爾運算式, 運算子的目標是確定應將哪個值賦給變數, 運算子寫成 -
variable x = (expression) ? value if true : value if false
下面是一段示例代碼:
public class Test {
public static void main(String args[]) {
int a, b;
a = 10;
b = (a == 1) ? 20: 30;
System.out.println( "Value of b is : " + b );
b = (a == 10) ? 20: 30;
System.out.println( "Value of b is : " + b );
}
}
執行上面示例代碼,得到以下結果 -
Value of b is : 30 Value of b is : 20
Shell
6.2. instanceof運算子
此運算子僅用于物件參考變數, 運算子檢查物件是否屬于特定型別(型別別或介面型別), instanceof運算子寫成 -
( Object reference variable ) instanceof (class/interface type)
如果運算子左側的變數參考的物件是右側的類/介面型別,則結果為真, 以下是一個例子 -
public class Test {
public static void main(String args[]) {
String name = "Kobe";
// 當 name 的型別是 String 時,則回傳為:true
boolean result = name instanceof String;
System.out.println( result );
}
}
執行上面示例代碼,得到以下結果:
true
Shell
如果要比較的物件與右側型別兼容,則此運算子仍將回傳true, 以下是另一個例子 -
class Vehicle {}
public class Car extends Vehicle {
public static void main(String args[]) {
Vehicle a = new Car();
boolean result = a instanceof Car;
System.out.println( result );
}
}
執行上在示例代碼,得到以下結果:
true
完整的Java初級,高級對應的學習路線和資料!專注于java開發,分享java基礎、原理性知識、JavaWeb實戰、spring全家桶、設計模式、分布式及面試資料、開源專案,助力開發者成長!
歡迎關注微信公眾號:碼邦主

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/221732.html
標籤:其他
上一篇:Java非訪問修飾符
