算數運算子
(+,-,*,/,%)二元運算子(++,--)一元運算子
賦值運算子
=擴充套件運算子
+=,-=,*=,/=,
關係運算子
>,=,<=,!= ,instenceof
邏輯運算子
&&,||,!
位運算子
&,|,^,~,>>,<>>
條件運算子
? :字串連線符
++,-,*,/,%屬於二元運算子(二元運算子:需要兩個運算元完成執行計算的計算符)
例如: a+b ;
運算規則:
整數運算
如果兩個數中有乙個是long型別的話那麼 結果 也是long型別。
沒有long時 結果為int (資料型別是 short byte char 結果也是int型)。
浮點型運算
如果有乙個數是double 那麼結果 double型別
所有的都是float 時 結果 時 float 型別
取模運算
運用 % 進行 計算 可以是浮點數,但是通常情況下使用的整數。 結果是餘數。
注意:取模運算 結果的符號 與左邊的運算元符號相同
例如:7%5=2 -7%5=-2
++ ,--屬於一元運算子。
例如 : a++
一元運算子注意事項:
例如 ++a ,a++;
兩者之前的區分:
++a 是先進行加法運算然後在賦值
a++ 是先賦值在進行加法運算
如下圖** 所示:
目的都是用來對變數進行賦值。
舉個例子 :
b+=2 → b=b+2 b+2算出的值賦值給b 假設我 b=0 b+2 賦值給 b 那麼現在b=2 其餘的同理。
= 是 賦值運算子 如:b=2;
用來操作boolean值
運算子說明
&(與) 邏輯與
只要有乙個運算元是false 結果就是false
|(或)邏輯或
只要有乙個是運算元是true 結果就是 ture
&&(與)短路與
只要有乙個運算元是false 結果就是false
||(或)短路或
只要有乙個運算元是ture 結果就是ture
!(非)邏輯非
取反 如:!ture 結果是 false
^(異或)邏輯異或
運算元相同 結果 是 false 不同 結果是 true
短路問題:
&&只要有乙個 false 後面就不再進行判斷
|| 只要有乙個 true 後面就不再進行判斷
& 和 | 所有的都不會進行判斷
如下圖**:
圖1. 邏輯 &運算
圖2短路&&運算
優先順序: 邏輯非 >邏輯與 > 邏輯或
數字在計算機是按照二進位制來表示的,而位運算就是針對數字的二進位制值進行操作
運算子說明~取反
&按位與
|按位或
^按位異或
<<
左移運算子 移一位相當於 *2
>>
右移運算子 移一位相當於 /2取商
如下**所示:
注意:當運算元都是 數字型時 ,& ,|,^ 是 位運算子
當運算元都是 boolean型別時 &,|,^是邏輯運算子
對字串進行連線
如 : 「a」+「b」 = 「ab」
3 + "a" = "3b"
只要有乙個 是字串 那麼 就是進行字串連線操作。
1+3=4
1+"3"="13"
6)條件運算子(三目條件運算子)
用來做 判斷賦值
如 a>b ? a=1 : a=2 ;
解釋: 如果 a>b =true 那麼 a=1 否則 a=2
關於運算子 優先順序 的話 建議用 ()來進行優先順序運算。但是 邏輯的 優先順序一定要記住
臥薪嘗膽之JAVA重學(變數的本質)
變數是乙個可操作的儲存空間,它的儲存位置是確定的但是裡面儲存的東西是不確定的 通過變數名來找到對應儲存空間位置來進行儲存資料。打個比方 就如同有好幾個箱子每個箱子都有乙個編號,通過編號 來判斷箱子裡應該放什麼 專門放衣服的箱子裡面放的是衣服。變數也是同理。我給乙個變數 命名 申明它的型別 然後 它所...
C 重學 運算子過載
只能通過成員函式過載 只能通過全域性函式過載 不要過載 失去短路規則 成員函式實現過載 全域性函式實現 輸入 輸出運算子過載 friend ostream operator ostream output,const distance d friend istream operator istream...
java之運算子
short s 2 s s 2 s 2 哪一行會報錯?為什麼?第二行報錯因為 有乙個自動強制轉換的過程system.out.println true true false system.out.println false false false 運算子 異或 左邊 右邊 結果 true true f...