1. 程式人生 > >面試題-----Java基礎

面試題-----Java基礎

一:說說&和&&的區別

  &和&&都可以用作邏輯與的運算子,表示邏輯與(and),當運算子兩邊的表示式的結果都為 true 時,整個運算結果才為 true,否則,只要有一方為 false,則結果為 false。

  &&還具有短路的功能,即如果第一個表示式為 false,則不再計算第二個表示式,例如,對於 if(str != null && !str.equals(“”))表示式,當 str 為 null 時,後面的表示式不會執行,所以不會出現 NullPointerException 如果將&&改為&,則會丟擲NullPointerException異常。If(x==33 & ++y>>0) y會增長,If(x==33 && ++y>0)不會增長&還可以用作位運算子,當&操作符兩邊的表示式不是 boolean型別時,&表示按位與操作,我們通常使用 0x0f 來與一個整數進行&運算,來獲取該整數的最低 4 個 bit 位。

 

二、char 型變數中能不能存貯一箇中文漢字?為什麼?  

  char 型變數是用來儲存 Unicode 編碼的字元的,unicode 編碼字符集中包含了漢字,所以,char 型變數中當然可以儲存漢字啦。不過,如果某個特殊的漢字沒有被包含在 unicode 編碼字符集中,那麼,這個 char 型變數中就不能儲存這個特殊漢字。補充說明:unicode編碼佔用兩個位元組,所以,char 型別的變數也是佔用兩個位元組。

 

三:"=="和 equals 方法究竟有什麼區別

  ==操作符用來比較兩個變數的值是否相等,比較變數所對應的記憶體中所儲存的數值是否相同,要比較兩個基本型別的資料或者兩個引用變數是否相等,只能用==操作符。