Java 運算符

學而時習之,溫故而知新.

最近看到一個面試題,考察的是位移運算符,遺憾的是自己居然沒有想到,這裏特意回顧java的運算符.

java的運算符 有

賦值運算符,算術運算符,自增自減運算符,比較運算符,邏輯運算符,位移運算符,三元運算符,

1 賦值運算符

賦值運算符用 "=" 表示, 其功能就是就是將右邊的操作數所含的值賦給左邊的操作數

比如 int a=10; 該表達式是將10賦值給變量a

注意 = 與==的區別

= 是賦值運算符,我們使用=是賦值

==是比較運算符用來比較大小是否相等的

當然js以及微信小程序有=== 是判斷的是值及類型是否完全相等

2 算符運算符

3 自增自減運算符

++:自增運算法

-- :自減運算法

一般爲了方便記憶 把放在 前面的++a 成爲前++ 放到後面的a++成爲後++

++a 先+1 在運算 

a++ 先運算在++

例如:

x = 2 * ++m    先運行 m = m + 1; 再運行 x = 2 * m; (前++)
x = 2 * m ++;    先運行 x = 2 * m; 再運行 m = m + 1;(後++)
 

--a  稱爲前 -- , 先減1在運算

a-- 稱爲後--, 先運算在

y = 2 * -- m    先運行 m = m - 1; 再運行 y = 2 * m;(前--)
 

y = 2 * -- m    先運行 m = m - 1; 再運行 y = 2 * m;(後--)
 

4 比較運算符

5 邏輯運算符

&& 邏輯與 表示2個條件都滿足的時候才走下一步,

|| 邏輯或 表示其中一個條件滿足,即可進行下一步,

! 邏輯非 ,條件相反的時候進行下一步,

5 位移運算符

<<      :     左移運算符,num << 2,相當於num乘以2的2次冪

>>      :     右移運算符,num >> 2,相當於num除以2的2次冪

>>>    :     無符號右移,忽略符號位,空位都以0補齊  num>>>3 相當於num除以2的3次冪

其實位移運算符移動的是進制的數據

比如3 <<3  結果是3*2^3 =24

3 是十進制換成2進製爲0011 左移3位的結果是0011000 在換成10進製爲24

右移是一樣的24是10進制換成2進製爲0011000 右移3位 是0011 在換成10進制結果爲3

10進制換算2進制的示例圖(自己手畫的有點醜,哈哈)

6 三元運算符

三元運算符的格式:

條件式?值1:值2

例如 boolean a=10>11?true:false

運算符的優先級

 

面試題

一個數組爲{1,2,3,4,5,6}

現在要數組變爲{1*2,2*2*2,3*2*2*2,4*2*2*2*2,5*2*2*2*2*2,6*2*2*2*2*2*2}

這個題目考察的就是位移運算符,想到怎麼做了吧

        int[] arr={1,2,3,4,5,6};
        int temp=2;
        for (int i=0;i<arr.length;i++){
            arr[i] = arr[i]*temp;
            temp = temp<< 1;
            System.out.print(arr[i]+"\t");
        }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章