1. 如下代碼class A {A() { }}class B extends A {}哪兩個說明是正確的?A. B類的構造器應該是 public.B. B類的構造器應該是沒有參數C. B類的構造器應該調用this().D. B類的構造器應該調用super().答案:BD解析:預設構造器的修飾符只跟當前類的修飾符有關。 比如B如果是public的,則預設構造方法是public的。 如果B是預設的存取權限,則構造方法相同。 當B是內部類是,前面也可以有protected,private等,預設添加的構造方法仍然和類的修飾符一致。2. 如下代碼public class Test {public int aMethod() {static int i = 0;i ;return i;}public static void main (String args[]) {Test test = new Test();test.aMethod();int j = test.aMethod();System.out.println(j);}}輸出結果是什嗎?A. 0B. 1C. 2D. 編譯失敗答案:D解析:static在Java語言中的使用有四種:(成員變數、成員方法、代碼塊、內部類)3. 如下代碼int i =1,j =10; do { if(i > --j) { continue; } i++; } while (i <5); System.out.println("i = " + i + "and j = " + j); 輸出結果是什麼?A. i = 6 and j = 5B. i = 5 and j = 5C. i = 6 and j = 5D. i = 5 and j = 6E. i = 6 and j = 6答案:D4. 如下代碼:boolean bool = true;if(bool = false) {System.out.println("a");} else if (bool) {System.out.println("b");} else if (!bool) {System.out.println("c");} else {System.out.println("d");}輸出結果是什麼?A. aB. bC. cD. dE. 編譯失敗答案:C5. 如下代碼:public class SwitchTest { public static void main(String[] args) { System.out.println("value = " + switchIt(4)); } public static int switchIt(int x) { int j = 1; switch (x) { case 1: j++ ; case 2: j++ ; case 3: j++ ; case 4: j++ ; case 5: j++ ; default: j++ ; } return j + x; }}輸出結果是什麼?A. value = 3B. value = 4C. value = 5D. value = 6E. value = 7F. value = 8答案:F6. 以下數組的定義,哪三條是正確的?A. public int a []B. static int [] aC. public [] int aD. private int a [3]E. private int [3] a []F. public final int [] a答案:A,B,F7. 如下代碼:class Super {public Integer getLenght() { return new Integer(4); }}public class Sub extends Super {public Long GetLenght() { return new Long(5); }public static void main(String[] args) {Super sooper = new Super();Sub sub = new Sub();System.out.println(sooper.getLenght().toString() ","sub.getLenght().toString() );}}輸出是什麼?A. 4,4B. 4,5C. 5,4D. 5,5E. 編譯失敗.答案:A8. 在介面中以下哪條定義是正確的? (兩個答案)A. void methoda();B. public double methoda();C. public final double methoda();D. static void methoda(double d1);E. protected void methoda(double d1);答案:A,B9. 如下代碼:public void test(int x) {int odd = x%2;if (odd) {System.out.println("odd");} else {System.out.println("even");}}哪個描述正確?A. 編譯失敗.B. "odd" 永遠被輸出.C. "even" 永遠被輸出D. "odd" 輸出x的值,E. "even" 輸出x的值答案:A10. 如下代碼:public class X {public X aMethod() { return this;}}public class Y extends X {}哪兩個方法能加到Y類的定義中?A. public void aMethod() {}B. private void aMethod() {}C. public void aMethod(String s) {}D. private Y aMethod() { return null; }E. public X aMethod() { return new Y(); }答案:CE11. 如下代碼:public class X {public static void main(String [] args) {try {badMethod();System.out.print("A");}catch (Error ex) {System.out.print("C");}finally {System.out.print("B");}System.out.print("D");}public static void badMethod() {throw new Error();}}結果是什麼?A. ABCDB. 編譯失敗.C. 顯示C,退出程式.D. 顯示B,C,退出程式.E. 顯示CBD,退出程式.答案:E12. 如下代碼:class Exc0 extends Exception { }class Exc1 extends Exc0 { }public class Test {public static void main(String args[]) {try {throw new Exc1();} catch (Exc0 e0) {System.out.println("Ex0 caught");} catch (Exception e) {System.out.println("exception caught");}}}結果是什麼?A. Ex0 caughtB. exception caughtC.第2行出錯,編譯失敗.D. 第6行出錯,編譯失敗.答案:A13. 以下哪四個能使用throw拋出?A. ErrorB. EventC. ObjectD. ThrowableE. ExceptionF. RuntimeException答案:A,D,E,F14. 如下代碼:public class X (private static int a;public static void main(String [] args) {modify(a);System.out.println(a);}public static void modify(int a) {a++ ;}}結果是什麼?A. 0B. 1C. 編譯失敗.D. 拋出運行時異常.答案:A15. 如下代碼:int i = 0;for (; i <4; i += 2) {System.out.print(i + "");}System.out.println(i);輸出結果是什嗎?A. 0 2 4B. 0 2 4 5C. 0 1 2 3 4D. 編譯失敗E. 一個異常在運行時被拋出答案:A16. 如下代碼:public class Foo {public static void main(String[] args) {try {return;} finally {System.out.println( "Finally" );}}}輸出結果是什麼?A. FinallyB.編譯失敗C. 代碼正常運行但沒有任何輸出.D. 運行時拋出異常答案:A17. 如下代碼:class Base {Base() { System.out.print("Base"); }}public class Alpha extends Base {public static void main( String[] args ) {new Alpha();new Base();}}結果是什麼?A. BaseB. BaseBaseC. 編譯失敗.D. 代碼運行但沒有輸出.E. 運行時拋出異常.答案:B18. 如下代碼:Float f = new Float("12");switch (f) {case 12: System.out.println("Twelve");case 0: System.out.println("Zero");default: System.out.println("Default");}結果是什麼?A. ZeroB. TwelveC. DefaultD. TwelveZeroDefaultE. 編譯失敗.答案:E19. 下面哪三個描述是正確的?A. 預設構造器初始化方法變數B. 預設構造器有和它所在類相同的訪問修飾詞.C. 預設構造器調用其父類的無參構造器.D. 如果一個類沒有無參構造器,編譯器會為它建立一個預設構造器.E. 只有當一個類沒有任何構造器時,編譯器會為它建立一個預設構造器答案:B,C,E20. 如下代碼10. public Object m() {11. Object o = new Float(3.14F);12. Object [] oa = new Object[1];13. oa[0] = o;14. o = null;15. oa[0] = null;16. print 'return 0';17. }當Float對象在第11行被建立後, 什麼時候能夠被記憶體回收?A. 13行以後.B. 14行以後.C. 15行以後.D. 16行以後.答案:B