013_JAVA基礎語法_運算子
阿新 • • 發佈:2022-03-14
-
算數運算
-
算術運算中存在比int容量高的型別,則結果型別為高容量的型別,否則結果就為int;
long a = 1234567890122345L;
int b = 123;
short c = 10;
byte d = 8;
System.out.println(a+b+c+d); //Long
System.out.println(b+c+d); // int
System.out.println(c+d); // int -
自增自減注意事項
-
++,-- 在變數後面時,執行玩這段程式碼後,變數才會增加或減少;
-
++,-- 在變數前面時,執行玩這段程式碼前,變數先增加或減少;
-
-
很多的算數運算會使用工具類來操作。
b=a++;//執行完這局程式碼後,先賦值再自增
b=++a;//執行完這局程式碼前,先自增,再自增
-
-
關係運算符返回的結果為布林值
-
==只能使用在基礎型別中,以及物件和null比較時;
-
當物件和物件比較想使用“==”判斷時,應該使用equals來判斷。
-
-
邏輯運算子
-
邏輯與(&&)運算,兩個為true才為true;邏輯或(||)運算,兩個為false才為false;邏輯非(!)運算,為true則結果為false,為false則結果為true
-
短路運算
-
邏輯與(&&)時,前一個邏輯表示式為false,則後面的邏輯表示式不再進行判斷;其結果為false;
-
邏輯或(||)時,前一個邏輯表示式為true,則後面的邏輯表示式不再進行判斷;其結果為true。
boolean flag = true;
boolean flag1 = false;
System.out.println("flag && flag1 :"+(flag && flag1)); //flag && flag1 :false
System.out.println("flag || flag1 :"+(flag || flag1)); //flag || flag1 :true
System.out.println("!(flag && flag1) :"+!(flag && flag1)); //!(flag && flag1) :true
//短路運算
int num =4;
boolean flag2 = (num < 4) && (num++<4);
System.out.println(num); //4
System.out.println(flag2); //false -
-
-
位運算子
-
& 都為1,結果為1
-
| 都為0,結果為0
-
^ 相同為0,不同為1
-
~ 取反
A = 0011 1100
B = 0000 1101
A & B = 0000 1100
A | B = 0011 1101
A ^ B = 0011 0001
~A = 1100 0011 -
左移(<<) *2
-
右移(>>) /2 (尖尖只哪邊往哪邊移)
//2*8 如何計算最快? 2*2*2*2
-
-
三元運算子(條件運算子 ?:)
-
必須掌握
-
格式 x ?y :z
-
如果x為true,則結果為y;否則結果為z
int score = 50;
String type = score < 60 ? "不及格" : "及格";
System.out.println(type); //不及格
-
-
擴充套件賦值運算子(用於偷懶使用,程式碼簡潔)
int number1 = 10;
int number2 = 20;
number1+=number2; //number1=number1+number2;
number1-=number2; //number1=number1-number2;
三、擴充套件
-
字串連線符 +
(面試題)String型別在字元連線符前面則其他運算元也會轉換為String型別
int number1 = 10;
int number2 = 20;
System.out.println(""+number1+number2); //1020
System.out.println(number1+number2+""); //30 -
運算子優先順序(瞭解並熟悉)
-
-
運算子優先順序列表
圖片來源:
SOJASON.Java運算子優先順序[EB/OL].[2022-03-14].https://www.sojson.com/operation/java.html
-