java運算子分為4類:算術運算子,關係運算子,邏輯運算子,位元運算符。
1. 算術運算子
java的算術運算子分為一元運算子和二元運算子。算術運算子的運算元必須是數實值型別。
(1) 一元運算子
一元運算子只有1個運算元,一元運算子有:正(+),負(-),加1(++)和減1(--)4個。
變數的自加(++),在變數的後面
int a = 3;int b = a++;System.out.println(a); //4System.out.println(b); //3
以上過程,其實分為2步:
int a = 3int b = a; //3a = a + 1; //4
變數的自加(++),在變數的前面
int a = 3;int b = ++a;System.out.println(a); //4System.out.println(b); //4
以上過程,其實分為2步:
int a = 3;a = a + 1; //a = 4int b = a; // b = 4
自減(--)和自加(++)一樣,其實只要看運算子在變數的前後位置,在前面變數先加上1,再使用該變數;如果在變數後面,那麼先使用該變數,然後該變數再加上1.
(2) 二元運算子
二元運算子有2個運算元,二元運算子有:加(+),減(-),乘(*),除(/)和模數(%)。
注意點,當有若干個變數進行運算時,結果類型取決於這些變數中範圍最大的那個變數的類型。
int a = 3;int b = 2;double c = a / b; // c=1.0
模數(%)樣本
int a = 4;int b = 3;int c = a % b;System.out.println(c); //c = 1
上面例子a為正數,b為正數,c為正數
int a = -4;int b = 3;int c = a % b;System.out.println(c); // c = -1
上面例子a為負數,b為正數,c為負數
int a = 4;int b = -3;int c = a % b;System.out.println(c); // c = 1
上面例子a為正數,b為正數,c為正數
由此可以得出一個規律:模數的結果符號與被除數相同。
2. 關係運算子
java的關係運算子用於比較兩個數值之間的大小,其運算的結果是個boolean值。關係運算子有6種:大於(>),小於(<),等於(=),不等於(!=),大於等於(>=),小於等於(<=)。這邊就不再贅述。
3. 邏輯運算子 java的邏輯運算子要求運算元的資料類型為boolean型,其運算結果也為boolean型的。邏輯運算子有邏輯與(&&和&),邏輯或(||和|),邏輯非(!),邏輯異或(^)。 其中:邏輯與&&和&,邏輯或||和|,運算規則基本上相同,其區別是:&和|運算是把邏輯運算式全部計算完;&&和||運算具有短路功能。 邏輯運算子的短路特性 (1) 邏輯與: 若第一個運算元為false,那麼結果肯定就是false,那麼將不會執行運算子後面的運算了。
int a = 10;int b = 11;int c = 12;int d = 13; boolean e = (a > b) && ((b = c) < d);System.out.println(e); // e = falseSystem.out.println(b); // b = 11
但是如果第一個為true,那麼就是會正常執行到運算子後面的運算了,舉例(這個只是驗證短路特性的)
int a = 10;int b = 11;int c = 12;int d = 13; boolean e = (a < b) && ((b = c) > d);System.out.println(e); // e = falseSystem.out.println(b); // b = 12
(2) 邏輯或: 若第一個運算元為true,那麼結果肯定就是true,那麼將不會執行運算子後面的運算了。例子與邏輯與的類似,這邊不再贅述。
4. 位元運算符
java的位元運算符是以二進位為單位進行運算的,其運算元和運算結果都是整型。位元運算符共有7個: 位與(&),位或(|),位非(~),位異或(^),右移(>>),左移(<<),0填充的右移(>>>)。
位元運算的位與(&)、位或(|)、位非(~)、位異或(^)與邏輯運算的相應操作的真值表完全相同,其差別只是位元運算操作的運算元和運算結果都是二進位整數,而邏輯運算相應操作的運算元和運算結果都是邏輯值。 這邊就不舉例了,對有電腦基礎的同學來說完全沒有問題的。有個經典筆試題:
/** java中用什麼辦法實現2×8效率最高 */ System.out.println(2 << 3); // 16
下一回,複習java基礎--流程式控制制語句。