標籤:
上一節寫了一些運算子的注意事項,這節開頭依然是對運算子的一些注意點的闡述!
比較子除了>、>=、<、<=、==、!=之外需要注意instanceof:檢查是否是類的對象,例如:”Hello” instanceof String ,返回結果位true。
1.邏輯運算子
&(與)的運算特點:運算的兩邊只要有一個是false,結果肯定是false,只有兩邊都為true,結果才true;
|(或)的運算特點:運算的兩邊只要有一個是true,結果肯定是true,只有兩邊都為false,結果是false;
^(異或)的運算特點:運算的兩邊結果如果相同,結果是false,兩邊的結果不同,結果是true;
!(非)的運算特點:判斷事物的另一面;
&&(短路 雙與)的運算特點:與&運算基本一致,只是&&當左邊為false時,右邊不參與運算的,而&兩邊都得運算;
||(短路 雙或)的運算特點:與|運算基本一致,只是||當左邊為true時,右邊不參與運算的,而|兩邊都得運算;
2.位元運算符
&(與位元運算符):運算特點與邏輯運算子的&一樣,只是這裡針對二進位的位元運算,例如:6&3=2;(二進位原理:110&011=010),任何數與位為1取&運算都為原來數(作用取某些有效位元);
| (或運算子):運算特點或邏輯運算子的&一樣,只是這裡針對二進位的位元運算,例如:6|3=7;(二進位原理:110|011=111);
^(異或運算子):運算特點與邏輯運算子的^一樣,只是這裡針對二進位的位元運算,例如:6^3^3 = 6,註:當一個數異或運算同一個數兩次,結果還是這個數本身(作用為加密的效果)
~ (反碼運算子):運算特點與符邏輯運算子中的!一致的。
<<(左移運算子):左移幾位其實就是該資料乘以2的幾次方。可以完成2的次冪運算!
>> (右移運算子) : 右移幾位其實就是該資料除以2的幾次冪。對於高位出現的空位,原來高位是什麼就用什麼補這個空位!
>>>(無符號右移運算子):資料進行右移時,高位出現的空位,無論原高位是什麼,空位都用0補。
練習:
1.//最有效率的方式算出2乘以8等於幾? 答案:System.out.println(2<<3);
2.對兩個整數變數的值進行互換 ?
答案:
開發時,使用第三方變數的形式,因為閱讀性強。
int c ;
c = a;
a = b;
b = c;
這種方式不要用,如果兩個整數的數值過大,會超出int範圍,會強制轉換。資料會
變化。
a = a + b; //a = 3 + 5;a = 8;
b = a - b; //3+5-5 = 3;b = 3;
a = a - b; //3+5-3 = 5;a = 5;
面試的時候用。
a = a ^ b; //a = 3 ^ 5;
b = a ^ b; //b = (3^5)^5; b = 3;
a = a ^ b; //a = (3^5)^3; a = 5;
Java 基礎入門隨筆(3) JavaSE版