1.算數運算符
+ 加(正號) - 減(符號) * 乘 / 除
% 取模(取余) ++ 自增 -- 自減
+號的幾種作用:
加法運算 表示為一個正數 還可以用來作字符串的拼接
整數相除只能得到整數。如果想得到小數,必須把參與計算的數據變化為浮點類型的數據。
自增和自減運算,在單獨使用,效果是一樣的。
在參與其它運算時:
++ 在前 當前數先 +1 ,在進行其它運算。
++ 在后 先進行其它運算,當前數在 +1。
-- 在前 當前數先 -1 ,在進行其它運算。
-- 在后 先進行其它運算,當前數在 -1。
常量不可以使用 自增和自減運算。
2.賦值運算符
基本的賦值運算符:=
擴展的賦值運算符:+= , -= , *= , /= , %=
擴展的賦值運算符,默認隱含了一個強制類型轉換
常量不可以使用
3.比較運算符
== 相等於 != 不等於 < 小於 > 大於 <= 小於等於 >= 大於等於 instanceof 檢查是否是類的對象
不管操作簡單還是復雜,結果肯定是boolean類型。
instanceof 判斷是否是類的對象 Eg : "hello" instanceof String; true
4.邏輯運算符
& (AND 與) | (OR 或) ^(XOR 異或)
!(Not 非) &&(短路與) ||(短路或)
用於連接結果為布爾型的表達式。 ^(異或) 邏輯運算符 兩邊相同為 false 不同為true; 單 &,運算符左邊無論真假 右邊的表達式都進行運算。 雙 &&,運算符左邊為真,右邊的表達式參與運算;如果運算符為假,右邊的表達式則不再參與運算(提高了程序的執行效率)。 | 和 || 同理,||左邊的表達式為真后面的表達式子則不進行運算。 !(Not 非)可以寫多個,單數個為反,偶數個不變。
5.位運算符
<< 左移(有符號) >> 右移(有符號) >>> 無符號右移
& 位與運算 | 位或運算 ^ 位異或運算
~ 按位取反運算符
要做位運算,首先要把數值轉化為二進制。
計算機在操作數據的時候 都是對補碼進行操作的。
& : 將兩個數轉化成二進制數的補碼,然后對應的每一位作與運算。有0則0,做完運算轉回原碼 最后將這個二進制數轉成十進制;
| : 將兩個數轉化成二進制數的補碼,然后對應的每一位作或運算。有1則1,做完運算轉回原碼 最后將這個二進制數轉成十進制;
^ : 將兩個數轉化成二進制數的補碼,然后對應的每一位作異或運算。同0則1.
做完運算轉回原碼 最后將這個二進制數轉成十進制; 某一個數據對另一個數據位異或兩次,其結果不變;
~ : 將一個數轉化成二進制數補碼,然后對每一位取反,即1變0,0變1. 做完運算轉回原碼 最后將這個二進制數轉成十進制;
<<:將符號前面的一個數轉化成二進制數補碼 然后最低位補符號后面數個數個0,符號位是不變的,將這個數轉為原碼,在轉成十進制數。
正數擴大為:<<前面的數乘2的<<后面的數的冪次方 負數縮小為 :<<前面的數乘2的<<后面的數的冪次方
>>:將符號前面的一個數轉化成二進制數補碼 然后最高位為0補0,為1補1,補符號后面數個數個0或1,將這個數轉為原碼,在轉成十進制數。
正數縮小為:>>前面的數除以2的<<后面的數的冪次方 負數縮小為:>>前面的數除以2的<<后面的數的冪次方
>>>:將符號前面的一個數轉化成二進制數補碼,不管符號位直接在最高位補零。補碼轉成原碼,最后將這數轉成十進制。
6.三目運算符(三元運算符)
格式:
(表達式) ?表達式1:表達式2;
表達式的結果為boolean類型。
如果表達式為:true 就把表達式1作為結果。
如果表達式為:false 就把表達式2作為結果。