Java的運算子很多而且都要會用
以下這篇就介紹有哪些Operators
1. 官網https://docs.oracle.com/javase/tutorial/java/nutsandbolts/opsummary.html
Simple Assignment Operator 簡單賦值運算子
等號 = : 等號的兩邊需要給予相同的參考資料型態
Arithmetic operator 算術運算子
加 + : 用在數字會自動casting成最大的基本資料型態, 用在字串會相加兩字串產生新的
減 - : 用在數字會自動casting成最大的基本資料型態
乘 * : 用在數字會自動casting成最大的基本資料型態
除 / : 用在數字會自動casting成最大的基本資料型態, 而非浮點數的除法都是無條件捨去, 浮點數是用分數來表示的
取餘數 % : 負數的餘數規則和一般數學的不一樣
Unary Operators 一元運算子
+ : 數字取正數
- : 數字取正數
++ : 數字+1, 放後是先給值在加, 放前是先加再給值
-- : 數字-1, 放後是先給值在減, 放前是先減再給值
! : 將邏輯判斷的true與fasle結果互換
Equality and Relational Operator 相等與關係運算子
等於 == : 基本資料型態是比較兩邊的數字是否相等, 物件則是比較參考值,
基本就是比較stack內的值是否相等, 而回傳true或false
不等於 != : 基本資料型態是比較兩邊的數字是否不相等, 物件則是比較參考值,
基本就是比較stack內的值是否不相等, 而回傳true或false
大於 > : 判斷左方數字是否大於右方, 而回傳true或false
大於等於 >= :判斷左方數字是否大於等於右方, 而回傳true或false
小於 < :判斷左方數字是否小於右方, 而回傳true或false
小於等於 <= : 判斷左方數字是否小於等於右方, 而回傳true或false
Conditional Operator 條件運算子
且 && : 左右兩邊皆是true才是true, 運算時只要左邊符合就不會計算右邊
或 || : 左右兩邊其中一方唯true就會回傳true, 運算時只要左邊符合就不會計算右邊
?: : ?(條件):敘述1:敘述2; 問號後的條件成立則執行:左邊, 否則執行右邊
Type Comparison Operator 類型比對運算子
instanceof : 用來判斷A是否為B的子類別或子介面
Bitwise and Bit Shift Operators 位元和位移運算子
Not ~ : 將位元的0和1互換
左移 << : x<<y 將x的位元左移y個單位,右邊補上0, 相當於*2的概念
右移 >> : x>>y 將x的位元右移y個單位,左邊補上原來最左邊的位元值, 相當於/2的概念
右移 >> : x>>>y 將x的位元右移y個單位,左邊補上0
AND & : x & y 將x與y的位元做and的邏輯運算, 皆1才回傳1
XOR ^ : x ^ y 將x與y的位元做xor的邏輯運算, 10或01才回傳1
OR | : x | y 將x與y的位元做or的邏輯運算, 其中一個是1則回傳1