今天以96通过SCJP考试

发表于:2007-06-22来源:作者:点击数: 标签:
今天以96通过SCJP考试(含考试经验和部分真题) 昨天在考试中心报了名,费用是另人心痛,花了1350RMB。不过,今天的考试倒是能够安慰一些,以96%通过了考试。59道题错了2个,按算应该是96.6,我还以为是四舍五入成97呢,可惜不是,直接把后面砍掉成96了。 记

   
  今天以96通过SCJP考试(含考试经验和部分真题)
  昨天在考试中心报了名,费用是另人心痛,花了1350RMB。不过,今天的考试倒是能够安慰一些,以96%通过了考试。59道题错了2个,按算应该是96.6,我还以为是四舍五入成97呢,可惜不是,直接把后面砍掉成96了。

  记得前几个月也经常来这里转转,关于java考试方面也请教了好几位,真的要感谢他们。刚考完试,有些无聊,随便再此侃几句,也说说一些经验,希望能给那些要考试的朋友一些帮助。呵呵,不过如果顺利通过的话,可也要感谢我哟 ~Q~
  考试题目一共是59道,120分钟,一般情况下,时间应该是足够的。我花了65分钟的时间做完的,后面的时间都用来检查。也许是这次做的时候特别小心吧,在检查的时候只发现了一道自己弄错的。还有填空题。在复习时,就一直对填空题挺害怕的,不象选择题那么好做。不料,第一道题就是填空题,着实让人出了点冷汗,不过仔细一看,其实也不难做,就是考String的immutable性的。题目如下:
  what value will s be _____ after this following execution.
  String s = yes;
  s.concat(no);
  s.substring(0,2);
  s += neither;
  等做完填空题,第二道出来的是一道线程题(本人对线程也是有点担心的,题目多,而且有一定的难度。) 题目是这样的:问运行结果的!
  public class ThreadTest {
  public static void main(String[] args) {
  T a = new T();
  (new Thread(a)).start();
  (new Thread(a)).start();
  }
  }
  
  class T implements Runnable {
  int x;
  int y;
  public void run() {
  for( ;;) {
  x++; y++;
  System.out.println( x =+ x + y =+ y);
  }
  }
  }
  第四道题也是线程的,题目考 下面的a方法什么时候返回true的
  public class Test {
  int x;
  int y;
  public void setX(int i) { x = i; }
  public void setY(int i) { y = i; }
  public synchronized void setXY(i) { setX(); setY();
  public synchronized boolean a() { return x != y }
  }
  }
  呵呵,考试刚一上来就出了几道本人最为害怕的题型,说真的,当时挺紧张的。不过做到慢慢后面就找到感觉了,题目不是很难。基本上全部在其考试大纲里面,考试大纲在sun网站可以下载。不过听说,下个月可能要考的是JDK1.4了,也就是最新的java考试。java2大纲里面列出了11条,基本上每条大纲都涉及好几个题目。覆盖面比较广,但难度都不大。有一部分题,需要非常细心才能看出来。例如,有一道题是这样的: 考编译和运行情况的
  byte a = 127;
  byte b = 126;
  byte c = a + b;
  当时一看,心想,这么简单的题,127 加 126可以通过,不过就是溢出了。后来仔细想想,这个题编译是不能通过的。因为 byte类型+byte类型的都自动转换成int类型的!
  关于垃圾回收的也考了好几道,其中有考概念,就是说给几个说法,判断那个说法是对的。也有给一段程序,判断在那一行,对象可以被垃圾回收,题目如下:
  判断第一行生成的对象,在那一行可以被垃圾回收。(相信这个题目应该不难)
  Object o = new String(Hello);
  Object [] a = new Object[2];
  a[0] = o;
  o = null;
  a[0] = null;
  关于数据结构方面的Collection概念考了二道(java1.2的Collection不是重点,不过听说1.4的Collection属于重点的啦)。两个题目主要是考各种数据结果的特点,以及在什么情况下应该选择那种。
  其中的一道是:判断下列那两种接口只存储唯一值类型
  a. Collection
  b. Map
  c. List
  d. Set
  e. AbstractSet
  f. SortedSet
  上面这个题目,只要稍微了解一些Collection概念就可以选对。不过可要注意,题目问的是那两种接口! AbstractSet虽然可以,但它是个抽象类,不是接口。呵呵,这可再次提醒大家做题目可不要漏过每个字、每个词,要不可是很容易掉进陷阱哦。 :)
  另外一个考数据结构的题目是:
  下面几个中,如果你想用一个Collection对象的数据结构,不要求值是unique的,但要求值是ordered的。那么请选一个(注意ordered跟sorted概念是不一样的,ordered是按照顺序,而后者是排序的。当时我就有点混淆了,不过仔细想想就搞清楚了)
  a. HashSet
  b. TreeMap
  c. ArrayList
  d. TreeSet
  在整次考试中,遇到的重载、覆盖、多态的题目特别多,一般都是先定义一个类,包含一个方法。然后用一个子类继承该类,问在子类中可以包含那些合法的方法定义。例如,有一个题目是:(选一个答案)
  class Parent {
  int x;
  protected void setX( int i ) { x = i; }
  }
  
  public class Son extends Parent {
  // add a method here indepentently
  }
  a. void setX( int i ) { x = i;}
  b. private void setX(int i) { x = i};
  c. public int setX(int i) { return i;}
  d. public void setX(int i) { x = i;}
  e. public void setX(int i) throws IOException { x = i;}
  在IO包中也考了不少,有File类也考了。听说File类每次都有题目,大家可要熟悉File类的方法。其中一道是问,想判断一个文件是否是一个目录,选用那种方法。另外,其他的主要就是考Stream Reader各种类的构造器的了。例,有一个题目是问下列那个定义是合法的:
  a. InputStream in = new InputStream(file.txt);
  b. FileInputStream in = new FileInputStream(file.txt);
  c. BufferedInputStream in = new BufferedInputStream(file.txt);
  d. OutputStream in = new FileOutputStream(file.txt,append);
  其它的象AWT等的,也都有题,在此就不再详细举例了(哈哈,更主要的还是难以记起来了)
  总之,这些题目都是在大纲里面规定的,不会超出范围。只不过有时候,同一种类型变换成几种而已。
  在考试前,一共花了三个月的时间复习java。前两个月的时间用来看书,看了好几遍,这本书确实是一本难得的好书。如果大家那位要考的话,我强烈推荐该书,最好多看几遍,越看越觉得有意思。java2核心技术也不错,不过的确是没《Thinking in java》好,讲得不是很全面,而且错别字特别多。
  在最后一个月中,每两三天坚持做一套模拟题,模拟题一般从网上可以下载。我觉得模拟题特别管用!呵呵,不知道这些模拟题从那里来源的,很多出的相当水平,几乎接近于真实的考试。特别是很多类型都跟真实考试的一样。所以在考试中,都可以轻而易举的做完了。而且,模拟题的大概分数将和你真实考试差不多。一般,真实考试的分数比模拟考试要稍微多一些。比如我平时在做模拟题的时候,经常是错上4、5、6道的,不过还好,这次只错两道。
  如果按照上面所说的,看几遍,再做一些模拟题,相信靠70、80分应该没什么大问题。不过,我还是觉得如果要考高分,还得有专门的系统复习,主要针对考点来复习,比较容易拿高分。有一本系统复习书值得推荐,电子工业出版社出版的英文原版《Java2认证考试学习指南(Complete Java2 Certification Study Guide)》。这本书基本上都是按照考点大纲来讲的,而且讲的特别的详细,几乎囊括了所有的考试内容。不过该书只是用来复习用的,如果只用来学习java的话,该书用处倒是不大。到这里该说的都差不多都说了,总结一下复习的流程:看几遍《Thinking in java》--> 做一些模拟题-->看专门的系统复习资料
  最好一点,提醒大家的是,在考试时,前面有一些“考试须知”,而且这些须知包含有英文、韩文等不同语言,这些要考生自己选择那种语言考试。呵呵,说笑的是,当时一屏幕接着一屏幕看着那么多的须知,心里很着急。而且这些须知其实都没什么用。因此,最好在考试时,先让管理员帮你全部调好,也不用什么须知了,直接进入考试正题就可以了,这样至少可以省去你好几分钟的宝贵考试时间。

原文转自:http://www.ltesting.net