3、說說&和&&的區別。

NO IMAGE

&和&&都可以作為邏輯與的運算子,表示and的意識,也可以作為維運算子。

當符號兩邊都是boolean型別———->邏輯與運算子,只要有false則false。區別:

        邏輯&是兩邊都要執行

        邏輯&&是具有短路功能,只要左邊false,就停止執行。

         舉例:if(str != null && !str.equals(“”))表示式,當str為null時,後面的表示式不會執行,所以不會出現           NullPointerException如果將&&改為&,則會丟擲NullPointerException異常。If(x==33 & y>0) y會增長,           If(x==33 && y>0)不會增長

當符號兩邊不是boolean型別時———>&可以作為位運算子,二進位制補碼運算,相同為true(1),不同為false(0).

        舉例:我們通常使用0x0f來與一個整數進行&運算,來獲取該整數的最低4個bit位,例如,0x31 & 0x0f的結果為0x01。