算術運算子
- +
- -
- *
- /
- ++
- --
++出現在變數后,會先做賦值運算,再自加1
1 1 int m = 20; 2 2 int n = m++; 3 3 //最后結果 n = 20 m = 21
++出現在變數之前,會先進行自加1的運算,然后再賦值
1 int x = 50; 2 int y = ++x; 3 //x = y = 51 4 5 int num = 10; 6 num++; 7 ++num; 8 //這兩條陳述句是一樣的 都是一條陳述句,";"分號結束
注解:++無論出現在變數前還是后,只要++運算結束,";"分號結束,一定會自加1
一個例子:
1 int i = 0; 2 i = i++; 3 System.out.println(i); //運行結束后,i=0 4 //i = i++底層實作 5 int temp = i; 6 i = (int)(i+1); 7 i = temp;
關系運算子
- >
- >=
- <
- <=
- ==
- !=
注意:所有的關系運算子的運算結果都是布爾型別,不是true就是false,不可能是其他值
邏輯運算子
| 符號 | 解釋 |
|---|---|
| & | 邏輯與(并且) |
| | | 邏輯或(或者) |
| ! | 邏輯非(取反) |
| && | 短路與 |
| || | 短路或 |
| ^ | 異或(相同為false,不同為true) |
注意:邏輯運算子兩邊要求都是布爾型別,并且最終的運算結果也是布爾型別
& 兩邊都是true,結果才是true,
| 一邊是true,結果就是true,
"&&" 和 "||" 實際上和 "& "和 "|" 運算結果完全相同,區別在于:&& 和 || 有短路現象,
左邊的為false的時候:&& 短路了(后面的不執行)
左邊為true的時候:|| 短路了,(后面的不執行)
注解:效率方面來說&&比&效率高
位運算子
| 符號 | 解釋 |
|---|---|
| & | 與 |
| | | 或 |
| ^ | 異 |
| << | 左位移 注解:二進制左移多少位,每左移一位便乘以2(在一定范圍內),不管是正數還是負數 |
| >> | 右位移(有符號右移) 注解:二進制右移多少位,每右移一位便除以2(在一定范圍內),最高位是什么就用什么補,如:最高位為1則用1補,為0用0補 |
| >>> | 無符號右移 注解:最高位無論為什么都用0補 |
注解: &、|、^:前后兩者都是 boolean型別值時,此符號為邏輯運算子,前后兩者都是數值時,此符號為 位運算子
例子:
用最有效率的方式計算出4*8的結果
使用位運算(而位運算cpu直接支持的,效率最高)
2<<5或者4<<3
賦值運算子
- =
- +=
- -=
- *=
- /=
- %=
注解:使用擴展運算子的時候,永遠都不會改變運算結果型別
例子:
1 byte x = 100; // byte最大值127 2 x += 1000; // 編譯可以通過,x變數還是byte型別,只不過損失精度 3 x += 1000; 4 //底層為:x = (byte)(x + 1000); 5 int i = 10; 6 i += 10; // 底層:i = (int)(i + 10);
條件運算子(三目運算子)
語法格式:
布爾運算式 ? 運算式1 : 運算式2
布爾運算式為true,選擇運算式1作為結果,反之選擇運算式2作為結果
小知識
例子:
int a=5; System.out.println("a="+((a<5)?10.9:9))//結果為9.0 //注解:值1和值2如果型別不一樣,哪個大就向哪個轉型
例子:
char x='x'; int i=10; System.out.println(false?i:x);//結果為120 System.out.println(false?100:x);//結果為x System.out.println(true?x:65535);//結果為x System.out.println(true?x:65536);//結果為120
注解:使用三目運算子 char和數字直接比較 當數字(int型別)不超過65535時輸出是char型別'x',超過65535時輸出的是int型別
字串連接運算子
+ 運算子
-
’+‘ 運算子在java中有兩個作用(作用1:求和, 作用2:字串拼接)
-
當 + 運算子兩邊都是數字型別的時候,求和,當 + 運算子兩邊的任意一邊時字串型別,那么這個+會進行字串拼接操作
注解:字串拼接完成之后的結果還是一個字串
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/116772.html
標籤:Java
上一篇:Java自學-JDBC DAO
下一篇:JVM記憶體結構
