一、算數運算符
+ - * / % ++ - –
二元運算符
1、+ 運算符
- 字符執行時,會根據自作向右的順序執行
- 如果數值類型的變量和字符進行求和,先將字符轉成對應的數值進行求和
- 整數運算結束後,結果一定是整數
- byte/short/char在運算後結果自動提升爲int
- 如果存在字符串常量,‘+’則執行拼接操作(可以於任何類型進行拼接)
2、-運算符
- 小數不存在精確運算
3、%運算
- 取餘結果的正負取決於左側值的正負
- 操作數可以爲浮點數,一般使用整數
4、/運算
- 整數/0 拋出異常ArithmeticException 算數異常
- 非零小數/0 非零數字/0.0 infinity 無窮
- 0.0/0 0/0.0 0.0/0.0 NaN 非數字
- 如果參與運算數據都爲整數。結果一定爲整數
- 如果參與運算數據都爲小數,結果一定爲小數
- 4/5 結果等於0
5、*運算
- 規則同/運算
一元運算符
1、++運算
- a++先賦值後++
- ++a先++後賦值
- byte b=127 b++結果爲-128
- 無論byte、short、char在操作++、–時,底層會默認添加一個強制類型轉換,結果類型是原來的類型
2、–運算
- 規則同++運算
- a–先賦值後–
- –a先–後賦值
二、賦值運算符
=、+=、-=、/=、*、&=、|=、^=、>>=、<<=、<<<=、>>>=
- 除了=以外,其餘符號都要求變量先有值次啊能使用
- byte/short/char可以參與賦值運算
三、關係運算符
- 類型
- ==
- !=
- >
- <
- >=
- <=
- 注意:
- ==、!= 是所有(基本、引用)數據類型都可以使用的
- >、<、<=、>=僅針對於數值類型(byte、short、int、long、float、double)以及char使用
- 運算結果一定是boolean類型
- 比較值的關係
四、邏輯運算符
- 作用:
- 用於連接兩邊都是布爾值或者布爾表達式的情況
- 類型:
- & 邏輯與
- 遇見False則False
- | 邏輯或
- 遇見True則True
- ^ 邏輯異或
- 相同false,反之true
- ! 邏輯非
- 對布爾值取反,true爲false,false爲true
- && 短路與
- 運算規律與邏輯與相同,存在短路操作
- 當左邊布爾值爲false,右邊表達式則不執行
- || 短路或
- 運算規律與邏輯或規則相同,存在短路操作
- 當左邊布爾值爲true,右邊表達式則不執行
- & 邏輯與
五、位運算符
- 規則
- & 按位與
- 遇0則0,雙1則1
- | 按位或
- 遇1則1
- 任意整數|0 還是本身
- 任意負數|負數 還是負數
- ^ 按位異或
- 相同則0,不同則1
- 一個屬按位異或兩次等於他自身
- 兩個數交換
- 中間變量
- 求和
- x=x+y y=x-y x=x-y
- 按位異或
- x=x^y y=x^y x=x^y
- ~ 按位取反
- 每一位按位取反
- << 按位左移
- 無論正負,向左移動幾位,就在最右邊添加幾個0
-
無符號右移
- 無論正負數,向右移動極爲就在最高位添加幾個0
- & 按位與
六、三目運算符
- 一元(~a)
- 二元(a+b)
- 三元(一定會有返回值,且僅有一個值)
- 格式
- 布爾表達式?表達式1:表達式2
- 執行流程
- 先計算布爾表達式,如果結果位true則執行表達式1,如果結果爲false,就執行表達式2
- 注:
- 三木運算符只會返回一個值
- 三目運算符可以嵌套使用
- 當沒有接受值類型時,兩個表達式類型可以任意
- 如果兩個表達式類型都是基本數據類型,那麼就會有類型提升
- 格式
七、運算符的優先級
- ()
- 一元 ++ – !~ 自右向左
-
- / %
- 加減
- 移位
- 關係
- 相等判斷
- 按位與或
- 按位異或
- 按位或
- 邏輯與
- 邏輯或
- 三目
- 賦值
- 逗號
八、心靈雞湯
只有一條路不能選擇那就是放棄的路;只有一條路不能拒絕那就是堅持的路。
感謝閱讀,水平有限,只是記錄自己學習生涯中的漫漫IT路,如有錯漏,還請不吝賜教