上期答案
第六題
11. public class Person {
12. privateString name;
13. publicPerson(Stringname) {
14. this.name = name;
15. }
16. public int hashCode() {
17. return 420;
18. }
19. }
下列哪個敘述是正確的:
A.在HashMap查找某個Person鍵值所需要的時間依賴於Map的大小。
B.執行刪除一個Person鍵的操作,將刪除HashMap中所有類型爲Person的鍵
C.在HashSet中插入第二個Person對象,將導致第一個Person對象被移除。
D.在HashSet中查找一個Person對象是否存在的時間是一個常數,不依賴於HashSet的大小
答案:A
知識點:
- 假設某類集的大小爲n,那麼對此類集的查找算法的時間複雜度爲O(n)因此A是正確的,且D是錯誤的。
- 對於Set和Map中,對於“重複實例”的認定必須同時複寫該類的equals()和hashCord()兩個方法。否則對“重複實例”的認定只是比較對象實例的內存地址,因此B和C是錯誤的
第七題
5. import java.util.*;
6. public class SortOf {
7. public static voidmain(String[] args) {
8. ArrayList<Integer> a = newArrayList<Integer>();
9. a.add(1); a.add(5); a.add(3);
11. Collections.sort(a);
12. a.add(2);
13. Collections.reverse(a);
14. System.out.println(a);
15. }
16. }
該程序片段的運行結果是?
A. [1 2 3 5]
B. [2 1 35]
C. [2 5 31]
D. [5 3 21]
E. [1 3 52]
F. 編譯失敗
G. 運行時有異常拋出
答案:C
知識點:
Conllections類定義了一系列針對容器操作的靜態方法,籠統的講凡事實現了Conlection接口的容器都可以在Conllections類中的靜態方法中找到對應的操作,本題中使用到了其中的兩個靜態方法:
sort():根據元素的自然順序對指定列表(List)按升序排列順序。
reverse():反轉指定列表中元素的順序。
關於Conllections類的詳細信息請參考JDK1.6的幫助文檔
第八題
11. public interface Status {
12. /* 此處插入代碼*/ int MY_VALUE = 10;
13. }
下列哪三個選項可以用於第12行
A. final
B. static
C. native
D. public
E. private
F. abstract
G. protected
答案:A B D
知識點:
接口的定義明確的要求接口要由:
抽象方法、全局常量組成。
抽象方法的修飾詞:public abstract
全局常量的修飾詞:public final static
第九題
5. class Atom {
6. Atom() {System.out.print("atom "); }
7. }
8. class Rock extends Atom {
9. Rock(String type){ System.out.print(type); }
10. }
11. public class Mountain extends Rock {
12. Mountain() {
13. super("granite ");
14. new Rock("granite ");
15. }
16. public staticvoidmain(String[] a){ newMountain(); }
17. }
上述代碼片段的運行結果是?
A. 編譯失敗.
B. atom granite
C. granite granite
D. atom granite granite
E. An exception is thrown at runtime.
F. atom graniteatom granite
答案:F
知識點:
當子類被實例化的時候都要首先調用父類的構造方法,按照這個規則倒推,稍加細心,此題不難
第十題
10. class Line {
11. public classPoint { public int x, y;}
12. public PointgetPoint() { return new Point(); }
13. }
14. class Triangle {
15. publicTriangle() {
16. // 此處插入代碼
17. }
18. }
在16行處插入代碼獲得一個Class Point的實例?
A. Point p = Line.getPoint();
B. Line.Point p = Line.getPoint();
C. Point p = (new Line()).getPoint();
D. Line.Point p = (newLine()).getPoint();
答案:D
知識點:
創建實例內部類的實例時,外部類的實例必須存在
外部類類名.內部類類名引用變量名稱= 外部類對象的引用.new 內部類構造器;
外部類類名.內部類類名引用變量名稱= new 外部類構造器.new 內部類構造器;
另一種可能的正確答案
Line.Point p = new Line().new Point();
--------------------------------------------------------分割線-----------------------------------------------
本期問題:
第十一題:
22. StringBuilder sb1 = new StringBuilder("123");
23. String s1 = "123";
24. // 此處插入代碼
25. System.out.println(sb1 + " " + s1);
將下列哪段代碼插入到第24行處可以使輸出結果爲"123abc 123abc"?
A. sb1.append("abc"); s1.append("abc");
B. sb1.append("abc"); s1.concat("abc");
C. sb1.concat("abc"); s1.append("abc");
D. sb1.concat("abc"); s1.concat("abc");
E. sb1.append("abc"); s1 = s1.concat("abc");
F. sb1.concat("abc"); s1 = s1.concat("abc");
G. sb1.append("abc"); s1 = s1 + s1.concat("abc");
H. sb1.concat("abc"); s1 = s1 + s1.concat("abc");
第十二題:
11. class Alpha {
12. publicvoid foo() { System.out.print("Afoo "); }
13. }
14. public class Beta extends Alpha {
15. publicvoid foo() { System.out.print("Bfoo "); }
16. publicstatic void main(String[] args) {
17. Alpha a = new Beta();
18. Beta b = (Beta)a;
19. a.foo();
20. b.foo();
21. }
22. }
此程序的運行結果是?
A. Afoo Afoo
B. Afoo Bfoo
C. Bfoo Afoo
D. Bfoo Bfoo
E. 編譯失敗.
F. 運行時存在異常.
第十三題:
一下哪兩個選項能夠創建並初始化一個靜態的整型數組:
A. static final int[] a ={ 100200 };
B. static final int[] a;
static { a=new int[2]; a[0]=100; a[1]=200;}
C. static final int[] a =new int[2]{ 100200 };
D. static final int[] a;
static void init() { a = new int[3];a[0]=100; a[1]=200; }
第十四題:
10. interface Foo { intbar(); }
11. public class Sprite {
12. public int fubar( Foo foo ) { returnfoo.bar(); }
13. public void testFoo() {
14. fubar(
15. // insert code here
16. );
17. }
18. }
在第15行處插入哪段代碼可以使得Sprite類完整?
A. Foo { public int bar(){ return 1; }
B. new Foo { public intbar() { return 1; }
C. new Foo() { public intbar() { return 1; }
D. new class Foo { publicint bar() { return 1; }
第十五題
1. class Alligator {
2. public static void main(String[] args) {
3. int []x[] = {{12} {345} {6789}};
4. int [][]y = x;
5. System.out.println(y[2][1]);
6. }
7. }
以上程序的運行結果是?
A. 2
B. 3
C. 4
D. 6
E. 7
F. 編譯失敗