1. 程式人生 > >不看OCJP考題你永遠不知道自己的JAVA基礎有多差(一)

不看OCJP考題你永遠不知道自己的JAVA基礎有多差(一)

雖然在國內IT業內各種考證被許多牛人不齒,用人單位也往往不做硬性要求,但是自從SUN公司被ORACLE收購之後,JAVA的認證考試的難度是有目共睹的,目前傳出的訊息OCJP的一次通過率只有10%左右,相當恐怖,不過這個數字恐怕在未來一段時間內會有大幅度上升。國內JAVA考試還未從過去的背考經時代完全醒過味來。OCJP的無考經時代是的眾多考生鎩羽而回。
    題庫變了,但是JAVA卻沒變,之所以JAVA認證在國內被人視若草芥,就是因為被考經就能過考試的事實,但現在不同了,今後OCJP的職場含金量估計會越來越高。
我開這個系列帖子主要是和大家分享過去SUN公司時代的JAVA考試題,答案你是否能做對已經不重要了,重要的是從這400多道考題中大家可以挖掘出那些已經熟知的基礎知識裡的容易忽略的內容。考題是英語的,我直接翻譯成中文給大家貼出來,一次五道題,答案我會在下一期給出。


問題1. 給出如下函式:
11. public static int sum(List list) {
12.                 int sum = 0;
13.                 for ( Iterator iter = list.iterator(); iter.hasNext(); ) {
14.                         int i = ((Integer)iter.next()).intValue();
15.                         sum += i;
16.                 }
17.                 return sum;

18. }
請在下列選項中選出三個改動,使得函式可以使用泛型且不會提示泛型未檢測警告?
(Choose three.)
A. Remove line 14.
B. Replace line 14 with "int i = iter.next();".
C. Replace line 13 with "for (int i : intList) {".
D. Replace line 13 with "for (Iterator iter : intList) {".
E. Replace the method declaration with "sum(List<int> intList)".

F. Replace the method declaration with "sum(List<Integer> intList)".

問題2:在演算法中要求使用java.util.List資料結構,該演算法要求可以方便的新增“add”一個元素,但是不要求支援隨機快速訪問元素,請問你會選擇下列的那個類?
A.        java.util.Queue
B.        java.util.ArrayList
C.        java.util.LinearList
D.        java.util.LinkedList

問題3:
11. // 此處插入程式碼
12.         private N min max;
13.         public N getMin() { return min; }
14.         public N getMax() { return max; }
15.         public void add(N added) {
16.                 if (min == null )
17.                         min = added;
18.                 if (max == null )
19.                         max = added;
20.         }
21. }
下列選項中,哪兩個插入第11行位置後可以是的程式碼完整且正確:
A. public class MinMax<?> {
B. public class MinMax<? extends Number> {
C. public class MinMax<N extends Object> {
D. public class MinMax<N extends Number> {
E. public class MinMax<? extends Object> {
F. public class MinMax<N extends Integer> {

問題4:
12. import java.util.*;
13. public class Explorer2 {
14.         public static void main(String[] args) {
15.                 TreeSet<Integer> s = new TreeSet<Integer>();
16.                 TreeSet<Integer> subs = new TreeSet<Integer>();
17.                 for(int i = 606; i < 613; i++)
18.                 if(i%2 == 0) s.add(i);
19.                 subs = (TreeSet)s.subSet(608, true, 611, true);
20.                 s.add(629);
21.                 System.out.println(s + " " + subs);
22.         }
23. }
以上程式碼的執行結果是
A. 編譯失敗.
B. 執行時有異常丟擲.
C. [608 610 612 629] [608 610]
D. [608 610 612 629] [608 610 629]
E. [606 608 610 612 629] [608 610]
F. [606 608 610 612 629] [608 610 629]

第五題
1. public class Score implements Comparable<Score> {
2.         private int wins losses;
3.         public Score(int w int l) { wins = w; losses = l; }
4.         public int getWins() { return wins; }
5.         public intgetLosses() { return losses; }
6.         public String toString() {
7.                 return "<" + wins + "" + losses + ">";
8.         }
9.         // insert code here
10. }
下列那個方法可以使得該類完整?
A. public int compareTo(Object o){/*more code here*/}
B. public int compareTo(Score other){/*more code here*/}
C. public int compare(Score s1Score s2){/*more code here*/}
D. public int compare(Object o1Object o2){/*more code here*/}