ocjp考試題庫_第1頁
ocjp考試題庫_第2頁
ocjp考試題庫_第3頁
ocjp考試題庫_第4頁
ocjp考試題庫_第5頁
已閱讀5頁,還剩61頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、1. Given:1. public class returnIt 2. returnType methodA(byte x, double y)3. return (short) x/y * 2;4. 5. What is the valid returnType for methodA in line 2?A. intB. byteC. longD. shortE. floatF. double Answer F注釋:short類型的x,除以double類型的y,再乘int的2,所以結(jié)果是double類型的。注意第三行的強制轉(zhuǎn)換,只是轉(zhuǎn)換了x。2. 1) class Super 2) pu

2、blic float getNum()return 3.0f; 3) 4) 5) public class Sub extends Super 6) 7) which method, placed at line 6, will cause a compiler error? A. public float getNum()return 4.0f; B. public void getNum() C. public void getNum(double d) D. public double getNum(float d)return 4.0d; Answer :B注意這道題主要考的是方法的o

3、verload和override。對于overload,只有參數(shù)列表不同,才做為標(biāo)準(zhǔn),而返回值和訪問控制關(guān)鍵字不能做為標(biāo)準(zhǔn),所以B錯在方法名相同,但只有返回值不同,這是錯的。C和D是正確的overload。對于override,則訪問控制關(guān)鍵字只能更加公有化,異常只能是超類方法拋出的異常的子類,也可以不拋出。返回類型,參數(shù)列表必須精確匹配。所以A是正確的override。 3. 1)public class Foo 2) public static void main(String args) 3) tryreturn; 4) finally System.out.println("

4、Finally"); 5) 6) what is the result? A. The program runs and prints nothing.B. The program runs and prints “Finally”.C. The code compiles, but an exception is thrown at runtime.D. The code will not compile because the catch block is missing. Answer:btry.catch.finally的問題。程序中如果遇到return,則finally塊先

5、被執(zhí)行,然后再執(zhí)行retrun,而finally塊后面的語句將不被執(zhí)行。如果遇到System.exit(1),則finally塊及其后的語句都不執(zhí)行,整個程序退出,還執(zhí)行什么呀。 4. 1) public class Test 2) public static String output="" 3) public static void foo(int i) 4) try 5) if(i=1) 6) throw new Exception(); 7) 8) output +="1" 9) 10) catch(Exception e) 11) output

6、+="2" 12) return; 13) 14) finally 15) output+="3" 16) 17) output+="4" 18) 19) public static void main(String args) 20) foo(0); 21) foo(1); 22) 23) 24) what is the value of output at line 22? Asnwer:13423執(zhí)行第一個foo(0)時,執(zhí)行第8條語句,output=1,然后執(zhí)行語句15,output=13,然后是17條,output=134,

7、因為是static類型的變量,所以任何對其值的修改都有效。執(zhí)行第二條foo(1),先執(zhí)行語句5,結(jié)果拋出異常,轉(zhuǎn)到catch塊,output=1342,finally任何情況下都執(zhí)行,所以output=13423,然后return跳出方法體,所以output=134235 1)public class IfElse 2)public static void main(String args) 3)if(odd(5) 4)System.out.println("odd"); 5)else 6)System.out.println("even"); 7) 8

8、)public static int odd(int x)return x%2; 9) what is output? Answer: 編譯錯誤。if中的判斷條件的結(jié)果必須是boolean類型的。注意這里說的是結(jié)果. 6 1)class ExceptionTest 2)public static void main(String args) 3)try 4)methodA(); 5)catch(IOException e) 6)System.out.println("caught IOException"); 7)catch(Exception e) 8)System.ou

9、t.println("caught Exception"); 9) 10) 11) If methodA() throws a IOException, what is the result? Answer: caught IOException如果methodA()拋出IOExecption,被語句6捕獲,輸出caught IOException,然后呢?然后就結(jié)束了唄。71)int i=1,j=10; 2)do 3) if(i+>-j) continue; 4)while(i<5); After Execution, what are the value f

10、or i and j? A. i=6 j=5 B. i=5 j=5 C. i=6 j=4 D. i=5 j=6 E. i=6 j=6 Answer: d程序一直循環(huán),直到i=4,j=6時,執(zhí)行完語句3后,i會+,這時i就等于了5,continue后就不能再循環(huán)了,所以選D。81)public class X 2) public Object m() 3) Object o=new Float(3.14F); 4) Object oa=new Object1; 5) oa0=o; 6) o=null; 7) oa0=null; 8) System.out.println(oa0); 9) 10)

11、 which line is the earliest point the object a refered is definitely elibile to be garbage collectioned? A.After line 4 B. After line 5 C.After line 6 D.After line 7 E.After line 9(that is,as the method returns) Answer: d當(dāng)執(zhí)行第6行后,仍然有對象指向o,所以o不能滿足條件,當(dāng)?shù)?條語句被執(zhí)行后,就再也沒有對象指向o了,所以選D。9 1) interface Foo 2) in

12、t k=0; 3) 4) public class Test implements Foo 5) public static void main(String args) 6) int i; 7) Test test =new Test(); 8) i=test.k; 9) i=Test.k; 10) i=Foo.k; 11) 12) What is the result?A. Compilation succeeds.B. An error at line 2 causes compilation to fail.C. An error at line 9 causes compilatio

13、n to fail.D. An error at line 10 causes compilation to fail.E. An error at line 11 causes compilation to fail. Answer: A編譯通過,通過測試的10 what is reserved(保留) words in java? A. run B. default C. implement D. import Answer: b,D111)public class Test 2) public static void main(String args) 3) String foo=arg

14、s1; 4) Sring bar=args2; 5) String baz=args3; 6) 7) java Test Red Green Blue what is the value of baz? A. baz has value of "" B. baz has value of null C. baz has value of "Red" D. baz has value of "Blue" E. baz has value of "Green" F. the code does not compile

15、G. the program throw an exception Answer: G當(dāng)執(zhí)行java Test Red Green Blue時,數(shù)組args只有012,運行時ArrayIndexOutOfBoundsException這個異常會被拋出,數(shù)組越界。12int index=1; int foo=new int3; int bar=fooindex; int baz=bar+index; what is the result? A. baz has a value of 0 B. baz has value of 1 C. baz has value of 2 D. an excep

16、tion is thrown E. the code will not compile Answer: b數(shù)組初始化后默認(rèn)值是0,所以baz=0+1=113 which three are valid declaraction(行為) of a float? A. float foo= -1; B. float foo=1.0; C. float foo=42e1; D. float foo=2.02f; E. float foo=3.03d; F. float foo=0x0123; Answer: A,D,F(xiàn)其它的系統(tǒng)都會認(rèn)為是double類型,所以出錯。說一下A和C的區(qū)別吧,-1系統(tǒng)會認(rèn)

17、為是一個int類型,把int類型再賦給float類型的foo,當(dāng)然沒錯了,可C就不同啦,42e1是int類型嗎?141)public class Foo 2) public static void main(String args) 3) String s; 4) System.out.println("s="+s); 5) 6) what is the result? A. The code compiles and “s=” is printed.B. The code compiles and “s=null” is printed.C. The code does

18、not compile because string s is not initialized(初始化). D. The code does not compile because string s cannot be referenced(引用).E. The code compiles, but a NullPointerException is thrown when toString is called. Answer:C只有實例變量系統(tǒng)才給予自動賦默認(rèn)值的這種待遇 15 1) public class Test 2) public static void main(String ar

19、gs) 3) int i=oxFFFFFFF1; 4) int j=i; 5) 6) 7) which is decimal value of j at line 5? A. 0 B.1 C.14 D.-15 E. compile error at line 3 F. compile error at line 4 Answer: C算一算就知道了。 16 float f=4.2F; Float g=new Float(4.2F); Double d=new Double(4.2); Which are true? A. f=g B. g=g C. d=f D. d.equals(f) E d

20、.equals(g) F. g.equals(4.2); Answer: B=兩邊類型不同不相等。所以A和C不等。equals只能用于引用類型,不能用于基本類型,所以D不對,而且兩邊類型不兼容的話,即使對象的內(nèi)容一樣,也不相等,所以E和F不對。17 1)public class Test 2) public static void add3(Integer i) 3) int val=Value(); 4) val+=3; 5) i=new Integer(val); 6) 7) public static void main(String args) 8) Integer i=ne

21、w Integer(0); 9) add3(i); 10) System.out.println(Value(); 11) 12) what is the result? A. compile fail B.print out "0" C.print out "3" D.compile succeded but exception at line 3 Answer: b在第五行里,程序又操作了New,重新分配了內(nèi)存空間。所以此i非彼i啦。181)public class Test 2) public static void main(Strin

22、g args) 3) System.out.println(63); /為XOR4) 5) what is output? Answer: 5算唄。191) public class Test 2) public static void stringReplace(String text) 3) text=text.replace('j','l'); 4) 5) public static void bufferReplace(StringBuffer text) 6) text=text.append("c"); 7) 8) public

23、static void main(String args) 9) String textString=new String("java"); 10) StringBuffer textBuffer=new StringBuffer("java"); 11) StringReplace(textString); 12) bufferReplace(textBuffer); 13) System.out.println(textString+textBuffer); 14) 15) what is the output? Answer: javajavact

24、extString是String類型的,具有不變性,語句3其實是創(chuàng)建了一個新的字符串,而不是修改原來的textString,而對于StringBuffer類型的對象,則所有修改都是實在的。所以在語句6中textBuffer變成了javac,所以輸出為javajavac。 201)public class ConstOver 2) public ConstOver(int x, int y, int z) 3) which two overload the ConstOver constructor? A.ConstOver() B.protected int ConstOver() C.pri

25、vate ConstOver(int z, int y, byte x) D.public void ConstOver(byte x, byte y, byte z) E.public Object ConstOver(int x, int y, int z) Answer: a,c主要的問題是overload,參數(shù)列表必須不同,方法名相同,訪問控制無限制。也無異常限制。這道題因為是構(gòu)造器,所以B,D和E不對,因為構(gòu)造器不能有返回類型。211)public class MethodOver 2) public void setVar(int a, int b, float c) 3) whi

26、ch overload the setVar? A.private void setVar(int a, float c, int b) B.protected void setVar(int a, int b, float c) C.public int setVar(int a, float c, int b)return a; D.public int setVar(int a, float c)return a; Answer: a,c,doverload無訪問控制限制,所以A對,順序也屬于參數(shù)列表,順序不同也一樣是overload,所以C正確,D當(dāng)然正確了,參數(shù)列表明顯不同。22 1

27、)class EnclosingOne 2)public class InsideOne 3) 4)public class InnerTest 5) public static void main(String args) 6) EnclosingOne eo=new EnclosingOne(); 7) /insert code here 8) 9) A.InsideOne ei=eo.new InsideOne(); B.eo.InsideOne ei=eo.new InsideOne(); C.InsideOne ei=EnclosingOne.new InsideOne(); D.I

28、nsideOne ei=eo.new InsideOne(); E.EnclosingOne.InsideOne ei=eo.new InsideOne(); Answer: e這里邊的一些形式是固定的。(1)靜態(tài)方法訪問非靜態(tài)內(nèi)類: 方法為: Outer myouter=new Outer();這里的myouter是創(chuàng)建的外部類的對象。 Outer.Inner myinner=myouter.new Inner();myinner是內(nèi)類的對象。 然后再myinner.showName();showName()是外類中的非靜態(tài)方法。(2)非靜態(tài)方法訪問非靜態(tài)內(nèi)類 直接創(chuàng)建該內(nèi)部類的對象:new

29、 Inner().showName();(3)靜態(tài)方法訪問靜態(tài)內(nèi)類: 也是直接創(chuàng)建該內(nèi)部類的對象,即Inner myinner = new Inner(),或者Outer.Inner myinner = new Outer.Inner()也行得通哦。23 What is "is a" relation? A.public interface Color public class Shapeprivate Color color; B.interface Component class Container implements Component private Compon

30、ent children; C.public class Species public class Animalprivate Species species; Answer: b"is a "意思為是什么:定義了一個超類和一個子類之間的一種直接關(guān)系:子類是超類的一種。也即是繼承的關(guān)系24 1)package foo; 2) 3)public class Outer 4)public static class Inner 5) 6) which is true to instantiated(事例) Inner class inside Outer? A. new Oute

31、r.Inner() B. new Inner() Answer: a,b25class BaseClass private float x=1.0f; private float getVar()return x; class SubClass extends BaseClass private float x=2.0f; /insert code what are true to override getVar()? A.float getVar() B.public float getVar() C.public double getVar() D.protected float getV

32、ar() E.public float getVar(float f) Answer: a,b,d又是override的問題,參數(shù)列表和返回值以及方法名(好像是費話)必須精確匹配,訪問控制要更公有化,如果拋出異常,那么必須異常本身或其子集或什么都不拋. 26 public class SychTest private int x; private int y; public void setX(int i) x=i; public void setY(int i)y=i; public Synchronized void setXY(int i) setX(i); setY(i); publi

33、c Synchronized boolean check() return x!=y; Under which conditions will check() return true when called from a different class? A.check() can never return true. B.check() can return true when setXY is callled by multiple threads. C.check() can return true when multiple threads call setX and setY sep

34、arately. D.check() can only return true if SychTest is changed allow x and y to be set separately. Answer: c 27Given:1. public class SyncTest (2. private int x;3. private int y;4. private synchronized void setX (int i) (x=1;)5. private synchronized void setY (int i) (y=1;)6. public void setXY(int 1)

35、(set X(i); setY(i);)7. public synchronized Boolean check() (return x !=y;)8. ) Under which conditions will check () return true when called from a different class? A. Check() can never return trueB. Check() can return true when setXY is called by multiple threadsC. Check() can return true when multi

36、ple threads call setX and setY separately. D. Check() can only return true if SyncTest is changed to allow x and y to be set separately. Answer:B 28Given:1. public class SyncTest 2. private int x;3. private int y;4. public synchronized void setX (int i) (x=1;)5. public synchronized void setY (int i)

37、 (y=1;)6. public synchronized void setXY(int 1)(set X(i); setY(i);)7. public synchronized Boolean check() (return x !=y;)8. )Under which conditions will check () return true when called from a different class?A. Check() can never return true.B. Check() can return true when setXY is called by multipl

38、e threads.C. Check() can return true when multiple threads call setX and setY separately.D. Check() can only return true if SyncTest is changed to allow x and y to be set separately. Answer: A哪一個不加鎖,就從哪一個入手,但這道題全都加鎖了,所以先A。29 1)public class X implements Runnable 2)private int x; 3)private int y; 4)pu

39、blic static void main(String args) 5) X that =new X(); 6) (new Thread(that).start(); 7) (new Thread(that).start(); 9) public synchronized void run() 10) for(;) 11) x+; 12) y+; 13) System.out.println("x="+x+",y="+y); 14) 15) 16) what is the result? A.An error at line 11 causes com

40、pilation to fail.B.Errors at lines 6 and 7cause compilation to fail.C.The program prints pairs of values for x and y that might not always be the same on the same line (for example, “x=2, y=1”)D.The program prints pairs of values for x and y that are always the same on the same line (for example, “x

41、=1, y=1”. In addition, each value appears twice (for example, “x=1, y=1” followed by “x=1, y=1”)E.The program prints pairs of values for x and y that are always the same on the same line (for example, “x=1, y=1”. In addition, each value appears twice (for example, “x=1, y=1” followed by “x=2, y=2”)

42、Answer: E這道題有問題,當(dāng)兩個線程同名時,輸出x=1,y=1,但只一次,而當(dāng)兩個線程不同名時,輸出就是兩次。理論上加鎖時,線程1會執(zhí)行直到結(jié)束,然后線程2才會開始執(zhí)行。30 Click the exhibit button:1. public class X implements Runnable( 2. private int x; 3. private int y; 4. 5. public static void main(Stringargs) 6. X that = new X(); 7. (new Thread(that).start(); 8. (new Thread(t

43、hat).start(); 9. ) 10. 11. public void run() ( 12. for (;) ( 13. x+; 14. y+; 15. System.out.printIn(“x=” + x + “, y = ” + y); 16. ) 17. ) 18. ) What is the result?A. Errors at lines 7 and 8 cause compilation to fail.B. The program prints pairs of values for x and y that might not always be the same

44、on the same line (for example, “x=2, y=1”).C. The program prints pairs of values for x and y that are always the same on the same line (for example, “x=1, y=1”. In addition, each value appears twice (for example, “x=1, y=1” followed by “x=1, y=1”).D. The program prints pairs of values for x and y th

45、at are always the same on the same line (for example, “x=1, y=1”.) In addition, each value appears only for once (for example, “x=1, y=1” followed by “x=2, y=2”). Answer D這道題也有問題,當(dāng)兩個線程同名的情況下,只輸出一次,但當(dāng)兩個線程不同名的情況下,可以清楚的看到兩個線程是交替執(zhí)行的,x=1,y=1后現(xiàn)可以是任何東西,也可能是另一個線程的x=1,y=1。31class A implements Runnable int i;

46、 public void run() try Thread.sleep(5000); i=10; catch(InterruptException e) public static void main(String args) try A a=new A(); Thread t=new Thread(a); t.start(); 17) int j=a.i; 19) catch(Exception e) what be added at line line 17,ensure j=10 at line 19? A. a.wait(); B. t.wait(); C. t.join(); D.t

47、.yield(); E.t.notify(); F. a.notify(); G.errupt(); Answer: c32 Given an ActionEvent, which method allows you to identify the affected component?A. public class getClass()B. public Object getSource()C. public Component getSource()D. public Component getTarget()E. public Component getComponent()F

48、. public Component getTargetComponent() Answer: c33import java.awt.*; public class X extends Frame public static void main(String args) X x=new X(); x.pack(); x.setVisible(true); public X() setLayout(new GridLayout(2,2); Panel p1=new Panel(); add(p1); Button b1=new Button("One"); p1.add(b1

49、); Panel p2=new Panel(); add(p2); Button b2=new Button("Two"); p2.add(b2); Button b3=new Button("Three"); p2.add(b3); Button b4=new Button("Four"); add(b4); when the frame is resized, A.all change height B.all change width C.Button "One" change height D.Button

50、 "Two" change height E.Button "Three" change width F.Button "Four" change height and width Answer: f341)public class X 2) public static void main(String args) 3) String foo="ABCDE" 4) foo.substring(3); 5) foo.concat("XYZ"); 6) 7) what is the value of foo at line 6? Answer: ABCDE問題的關(guān)鍵在于String的不變性,雖然又是substring又是concat的,但都只是創(chuàng)建了一個新的字符串,原本的foo一直都沒有被改變,也不可能被改變。35Which met

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論