您好,登錄后才能下訂單哦!
這篇文章主要講解了“Java測試題有哪些”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Java測試題有哪些”吧!
題目一: float a = 0.125f; double b = 0.125d; System.out.println((a - b) == 0.0); 代碼的輸出結果是什么?
A. true
B. false
題目二: double c = 0.8; double d = 0.7; double e = 0.6; 那么c-d與d-e是否相等?
A. true
B. false
題目三: System.out.println(1.0 / 0); 的結果是什么?
A. 拋出異常
B. Infinity
C. NaN
題目四: System.out.println(0.0 / 0.0); 的結果是什么?
A. 拋出異常
B. Infinity
C. NaN
D. 1.0
題目五: >>和>>>的區別是?
A. 任何整數沒有區別
B. 負整數一定沒有區別
C. 浮點數可以>>運算,但是不可以>>>運算
D. 正整數一定沒有區別
題目六: 某個類有兩個重載方法:void f(String s) 和 void f(Integer i),那么f(null)的會調用哪個方法?
A. 前者
B. 后者
C. 隨機調用
D. 編譯出錯
題目七: 某個類有兩個重載方法:void g(double d) 和 void g(Integer i),那么g(1)的會調用哪個方法?
A. 前者
B. 后者
C. 隨機調用
D. 編譯出錯
題目八: String a = null; switch(a)匹配case中的哪一項?
A. null
B. "null"
C. 不與任何東西匹配,但不拋出異常
D. 直接拋出異常
題目九: <String, T, Alibaba> String get(String string, T t) { return string; } 此方法:
A. 編譯錯誤,從左往右第一個String處
B. 編譯錯誤,T處
C. 編譯錯誤,Alibaba處
D. 編譯正確
題目十: HashMap 初始容量 10000 即 new HashMap(10000),當往里 put 10000 個元素時,需要 resize 幾次(初始化的那次不算)?
A. 1次
B. 2次
C. 3次
D. 0次
答案:
題目一: float a = 0.125f; double b = 0.125d; System.out.println((a - b) == 0.0); 代碼的輸出結果是什么?
A. true
B. false
解釋:首先浮點數是由符號位、指數位、有效數字三個部分組成,而0.125f、0.125d均可以精確的表示出來,不存在精度丟失,因而a-b==0.0。
題目二: double c = 0.8; double d = 0.7; double e = 0.6; 那么c-d與d-e是否相等?
A. true
B. false
解釋:類似十進制里面的分數1/3,就是無限循環數,無法精確表示出來,同理浮點數里有些數值也沒法精確表示出來。
System.out.println(0.8-0.7);//輸出0.10000000000000009
System.out.println(0.7-0.6);//輸出0.09999999999999998
題目三: System.out.println(1.0 / 0); 的結果是什么?
A. 拋出異常
B. Infinity
C. NaN
解釋:在整型運算中,除數是不能為0的,否則直接運行異常。但是在浮點數運算中,引入了無限這個概念。可以看一下源碼Double的定義, public static final double POSITIVE_INFINITY = 1.0 / 0.0;
題目四: System.out.println(0.0 / 0.0); 的結果是什么?
A. 拋出異常
B. Infinity
C. NaN
D. 1.0
解釋:java源碼,Double包裝類下,public static final double NaN = 0.0d / 0.0;NAN表示非數字,它與任何值都不相等,甚至不等于它自己。
題目五: >>和>>>的區別是?
A. 任何整數沒有區別
B. 負整數一定沒有區別
C. 浮點數可以>>運算,但是不可以>>>運算
D. 正整數一定沒有區別
解釋:>>>表示不帶符號向右移動二進制數,移動后前面統統補0;兩個箭頭表示帶符號移動,正整數的符號位是0,因而兩者沒有區別
題目六: 某個類有兩個重載方法:void f(String s) 和 void f(Integer i),那么f(null)的會調用哪個方法?
A. 前者
B. 后者
C. 隨機調用
D. 編譯出錯
解釋:1)精確匹配->2)基本數據類型(自動轉換成更大范圍)->3)封裝類(自動拆箱與裝箱)->4)子類向上轉型依次匹配->5)可變參數匹配。子類向上轉型,兩者的父類都是object類(null默認類型是object),因而會同時匹配上兩者,編譯器會報Ambiguous method call. Both錯誤
題目七: 某個類有兩個重載方法:void g(double d) 和 void g(Integer i),那么g(1)的會調用哪個方法?
A. 前者
B. 后者
C. 隨機調用
D. 編譯出錯
解釋:1)精確匹配->2)基本數據類型(自動轉換成更大范圍)->3)封裝類(自動拆箱與裝箱)->4)子類向上轉型依次匹配->5)可變參數匹配,本題是進行到第二步匹配上了。
題目八: String a = null; switch(a)匹配case中的哪一項?
A. null
B. "null"
C. 不與任何東西匹配,但不拋出異常
D. 直接拋出異常
解釋:在Java編程語言的設計者的判斷中,這比靜默跳過整個開關語句要合理,因為使用null作為開關標簽的話,編寫的代碼將永遠不會執行。
題目九: <String, T, Alibaba> String get(String string, T t) { return string; } 此方法:
A. 編譯錯誤,從左往右第一個String處
B. 編譯錯誤,T處
C. 編譯錯誤,Alibaba處
D. 編譯正確
解釋:尖括號里的每個元素都指代一種未知類型,在定義處只具備執行Object方法的能力,在編譯期間,所有的泛型信息都會被擦除,編譯后,get()的兩個參數是Object,返回值也是Object。
題目十: HashMap初始容量10000即new HashMap(10000),當往里put 10000個元素時,需要resize幾次(初始化的那次不算)?
A. 1次
B. 2次
C. 3次
D. 0次
解釋:比10000大,且最接近的2的n次方數是16384,默認負載因子是0.75,16384*0.75 = 12288>10000,因而不需要擴容。
感謝各位的閱讀,以上就是“Java測試題有哪些”的內容了,經過本文的學習后,相信大家對Java測試題有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。