Java之型別的轉換
面試例題1:
下列哪個選項能編譯正確?
A. Short myshort = 99S; C. float z = 1.0; B. int t = "abc".length(); D. char c = 17c;
解析:Short myshort=99S;這句要執行自動裝箱,呼叫shortValue方法,顯然99S無法得到值。將float z=1.0;改為float z=1.0f;就行了,系統預設的浮點數是double型。在Java中,length是屬性,一般用來說明陣列的長度;length()是方法,用來求陣列中某個元素的字串長度。
答案:B
面試例題2:
下面程式碼的輸出結果是?int i = 012; int j = 034; int k = (int)056L; int l = 078; System.out.println(i); System.out.println(j); System.out.println(k);
A. 輸出12,34,56 B. int k=(int)056L;行編譯錯誤 C. 輸出10,28,46 D. int l=078;行編譯錯誤
解析:int l = 078;行編譯錯誤,因為078是八進位制,只能選0~7的數字。
答案:D
面試例題3:
以下程式錯誤的是:
A. short s = 1; s = s + 1; B. short s = 1; s += 1;
解析:s+1為int,不能直接賦值給short,但是s+=1會自動進行型別轉換。
答案:A