java中最常見的面試問題

1.switch語句能否作用在byte上,能否作用在long,能否作用在String上:

        在switch(expr1)中,expr1只能是一個整數表達式或者枚舉常量,整數表達式可以是int基本類型或Integer包裝類型

由於byte  short  char都可以隱含轉換爲int,所以,這些類型以及這些類型的包裝類也是可以的,顯然,long   String類型是

不符合switch的語法規定.

2.short s1=1; s1 =  s1+1;有什麼錯? short s1=1; s1+=1; 有什麼錯?

       對於short s1=1; s1=s1+1;  由於s1=s1+1運算時會自動提升表達式的類型,所以結果是int類型,在賦值給short類型s1

時,編譯器將會報告需要強制轉換類型錯誤.

       對於short s1=1; s1+=1;  由於+=是java語言規定的運算符,java編譯器會對他進行特殊處理,因此可以正確編譯.

3.char型變量中能不能存儲一箇中文漢字?爲什麼?

       char型變量是用來存儲Unicode編碼的字符的,unicode編碼字符集中包含了漢字,所以是可以的,不過呢,如果某個特殊

的漢字沒有被包含在unicode編碼字符集中,那麼,這個char型變量中就不能存儲這個特殊的漢字.

       補充說明,unicode編碼佔用兩個字節,所以,char類型的變量也是佔用.

4.使用final關鍵字修飾一個變量時,是引用不能變,還是引用的對象不能變?

       指的是引用的變量不能變,引用變量所指向的對象中的內容還是可以變的,例如:

       final StringBuffer a = new StringBuffer("immutable");
        a = new StringBuffer("");  //編譯報錯
        a.append("broken");

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