名稱 | 優先順序 |
---|---|
後綴 | expr++, expr-- |
單元 | ++expr, --expr, +expr, -expr, ~, ! |
乘除 | *, /, % |
加減 | +, - |
位移 | <<, >>, >>> |
關係 | <, >, <=, >=, instanceof |
相等性 | ==, != |
位元且 | & |
位元互斥或 | ^ |
位元包含或 | | |
邏輯且 | && |
邏輯或 | || |
條件 | ? : |
指派 | =, +=, -=, *=, /=, %=, &=, ^=, |=, <<=, >>=, >>>= |
依功能區分,可分為
算術運算子
Java 的算術運算子 (arithmetic operator) 包含加、減、乘、除、取餘數,皆需兩個運算元構成運算式,如下列表
運算子 | 功能 | 範例 |
---|---|---|
+ | 加 | a + b |
- | 減 | a - b |
* | 乘 | a * b |
/ | 除 | a / b |
% | 取餘數 | a % b |
單元運算子
Java 的單元運算子 (unary operator) 僅需一個運算元,有表示數字為正負的 + 、 - ,另有遞增運算子 (increment operator) ++ ,遞減運算子 (decrement operator) -- ,以及邏輯補數運算子 (logical compliment operator) ! ,如下列表
運算子 | 功能 | 範例 |
---|---|---|
+ | 正 | +a |
- | 負 | -a |
++ | 遞增 | ++a, a++ |
-- | 遞減 | --a, a-- |
! | 邏輯補數運算子 | !a |
相等性及關係運算子
Java 的相等性及關係運算子 (equality and Relational Operator) ,比較兩個運算元是否相等或大於小於,結果為布林字面常數 (Boolean literal) ,也就是true 或 false ,如下列表
運算子 | 功能 | 範例 |
---|---|---|
== | 相等 | a == b |
!= | 不相等 | a != b |
> | 大於 | a >= b |
>= | 大於等於 | a >= b |
< | 小於 | a < b |
<= | 小於等於 | a <= b |
Java 使用連續兩個等號 == 測試相等性,注意這與一般我們手寫的數學等號 = ,這不一樣喔!
條件運算子
Java 的條件運算子 (conditional operator) ,測試兩個運算元是否都為 true ,或有一個為 true ,另有一個三元運算子,若第一個運算元為 true ,運算結果就是第二個運算元,反之結果為第三個運算元,如下列表
運算子 | 功能 | 範例 |
---|---|---|
&& | 邏輯且 | a && b |
|| | 邏輯或 | a || b |
?: | 條件選擇 | a ? b : c |
instanceof 運算子
Java 的 instanceof 運算子 (instanceof operator) ,測試某一物件是否為另一類別 (class) 的子類別 (subclass) ,或是某介面 (interface) 的實作介面,如下列表
運算子 | 功能 | 範例 |
---|---|---|
instanceof | 測試 b 是不是 a 的子類別或是實作介面 | a instanceof b |
位元運算子
Java 亦提供給整數型態進行逐位元運算的運算子,例如某 16 位元整數如下
0000111100001111
取其補數該整數會變成
1111000011110000
位元運算子 (bitwise operator) ,如下列表
運算子 | 功能 | 範例 |
---|---|---|
~ | 取補數 | ~a |
<< | 保留正負號向左位移 | a << b |
>> | 保留正負號向右位移 | a >> b |
>>> | 無正負號向右位移 | a >>> b |
& | 位元且 | a & b |
^ | 位元互斥或 | a ^ b |
| | 位元包含或 | a | b |
指派運算子
Java 最基本的指派運算子 (assignment operator) 為單一個等號 = ,這是用來將等號右邊的值拷貝給給左邊的變數資料。等號也可以跟其他運算子合用,會直接將結果儲存到原變數之中,如
運算子 | 功能 | 範例 |
---|---|---|
= | 指派 | a = b |
+= | 相加同時指派 | a += b |
-= | 相減同時指派 | a -= b |
*= | 相乘同時指派 | a *= b |
/= | 相除同時指派 | a /= b |
%= | 取餘數同時指派 | a %= b |
&= | 位元且同時指派 | a &= b |
^= | 位元互斥或同時指派 | a ^= b |
|= | 位元包含或同時指派 | a |= b |
<<= | 位元向左位移同時指派 | a <<= b |
>>= | 位元向右位移同時指派 | a >>= b |
>>>= | 位元無正負號向右位移同時指派 | a >>>= b |
Java 用單一等號 = 表示指派,連續兩個等 == 號表示相等性。
中英文術語對照 | |
---|---|
運算子 | operator |
算術運算子 | arithmetic operator |
單元運算子 | unary operator |
遞增運算子 | increment operator |
遞減運算子 | decrement operator |
邏輯補數運算子 | logical compliment operator |
相等性及關係運算子 | equality and Relational Operator |
布林字面常數 | Boolean literal |
條件運算子 | conditional operator |
instanceof 運算子 | instanceof operator |
類別 | class |
子類別 | subclass |
介面 | interface |
位元運算子 | bitwise operator |
指派運算子 | assignment operator |
參考資料
http://download.oracle.com/javase/tutorial/java/nutsandbolts/operators.html
http://download.oracle.com/javase/tutorial/java/nutsandbolts/op1.html
http://download.oracle.com/javase/tutorial/java/nutsandbolts/op2.html
http://download.oracle.com/javase/tutorial/java/nutsandbolts/op3.html
http://download.oracle.com/javase/tutorial/java/nutsandbolts/opsummary.html
http://java.sun.com/docs/books/jls/third_edition/html/lexical.html#3.12
http://download.oracle.com/javase/tutorial/java/nutsandbolts/operators.html
http://download.oracle.com/javase/tutorial/java/nutsandbolts/op1.html
http://download.oracle.com/javase/tutorial/java/nutsandbolts/op2.html
http://download.oracle.com/javase/tutorial/java/nutsandbolts/op3.html
http://download.oracle.com/javase/tutorial/java/nutsandbolts/opsummary.html
http://java.sun.com/docs/books/jls/third_edition/html/lexical.html#3.12
沒有留言:
張貼留言