SCJP备考指南

4/7/2006来源:Java认证人气:11386

本人于12月23日过了SCJP,得分93%,感觉还不错。下面把自己的复习、考试过程在这里做个小结,希望能帮助那些准备进军SCJP的朋友们。

1.知识背景和概况:

   首先,我不是程序员,在大学做毕业设计的时候用java做过一个系统,后来基本上没碰过Java了,2000年的时候上过北大的SCJP培训,当时觉得简直是白花钱,讲的太简单了。后来由于种种原因一直拖着没考,今年总算把这个心愿给了了。如果你曾经使用Java开发过东西,应该水平就不在我之下:-)

   虽然SCJP不是很难,但是如果你不专门复习准备的话,即使你经常使用Java开发,也未必就能过,和以前参加过的MCSE考试相比,我总的感觉是:SCJP考试的覆盖面要广的多,Java的各种概念都考到了。最初觉得应该跟准备MCSE似的,看一周的书,就去考试,后来发现这个想法是不现实的。最终我准备了3个月,当然主要因为工作忙,没有整块的时间看书,我也不是那种特别刻苦的人:-) 如果时间充裕,1个月的准备时间应该是足够了。按照我下面说的准备,没必要花钱去参加培训。

2.看书!

   我是学计算机的,也用过Java,这次考试可以说没有什么功利性目的,因此不想到处找考试题然后混过去,因此看书是必须的,先down两本好教材:

   1.Java2 Certification Tutorial:
   http://automation.seu.edu.cn/auto/content/tutorial.zip

   2.Complete Java2 Certificate:
   http://automation.seu.edu.cn/auto/content/Complete%20Java2%20Certificate.zip

   第一本是一个简明教程(其实也挺大的),基本上是针对SCJP 的考试大纲设计的,而且讲了很多容易混淆的东西,很不错,第2本是一个600多页的大书,但是基本上只有前一半是针对SCJP 的,后面是针对SCJD的,有这两本书,足够了,不用再看别的书。

   我的建议是先通读一遍后面这第2本书,仔细的复习一便,然后分章节的看第一本书,第

一本书附带了一个练习题系统,可以看完一章,做一章的题目,检查一下自己对各种基本概念的掌握程度,发现问题就再看书。要注意的是,这个练习题有些部分超出了SCJP的要求,但是对于扎实的掌握知识是很有帮助的,建议做完,搞懂。这个Java2 Certification Tutorial中有两个问题:1是没有IO部分,2是练习题中有些排版造成的错误,不过错误很明显。

   别忘了下载一个SUN的JDK,做实验用,当然用别的Java IDE也可以,但是我比较喜欢纯粹的命令行的JDK.

3.做题!

   理论上,看完了书,掌握差不多了,就可以去考试了,不过这个....总感觉不塌实,你要是能这么考过去,那真是很单纯的SCJP,呵呵,所以,怎么说,还是要做些模拟题的。一方面,你可以看看自己知识掌握的情况,另一方面,可以看看SUN出题的时候是多么的阴险:-)

   先来这三套:
   http://automation.seu.edu.cn/auto/content/Mock%20exam%201.pdf

   http://automation.seu.edu.cn/auto/content/Mock%20exam%202.pdf

   http://automation.seu.edu.cn/auto/content/Mock%20exam%203.pdf

   这三套题目就是Complete Java2 Certificate的作者弄的,公认是最接近SCJP真实难度和范围的模拟题目,建议做一套以后,对着答案把自己没掌握清楚的难点记下来,然后复习,弄清楚,再作第二套...如此往复,应该可以把知识都弄清楚,弄扎实。如果你做这些题目都能对80%,就基本上没问题了。

   网上各种模拟题目很多,可以看看,比如:JCert4.0
   http://automation.seu.edu.cn/auto/content/JCertify40.exe
   这个测试题难度不大,但是界面与SCJP实际考试差不多。可以做做。

4.什么叫基础

   SCJP是考基础的,但是基础不等于就是简单,比如下面这个例子:
   String a = \"JAVA\";
   String b = \"JAVA\";

   String c = new String(\"JAVA\");
   String d = \"JA\";
   String e = \"VA\";
   String f = \"JA\"+\"VA\";
   String g = d+e;
   String h = c;

   你觉得如果判断 a==b, a==c, a==f, a==g, c==f, c==g, c==h 哪些是true, 哪些是false呢?你需要充分地了解Java String Object的原理才能回答这个问题。

   还有这个:
   int a=0;
   int b[]=new int[5];
   int c=3;

   b[a]=a=c;

   最终a=?, b[0]还是b[3]被赋值呢?
   另外,线程,程序流控制,访问权限控制,Inner Class 等等部分,都可以出很多这种题目。当然,如果你真在SCJP考试里遇到的全是这个水平的考题,我觉得你可以投诉了:-)。但是你还是要力求把各种基本概念都完全弄清楚的。

5.关于真题

   这好象是一个敏感的问题,完全靠背真题考试,是我比较反感的。而且SCJP的考试题库也是在不断变化的,因此全指望背题是不可靠的。现在网上比较流行的SCJP真题是著名的147真题。我就不提供下载地址了。不过需要注意的是,网上流行的真题的答案里经常有错误,需要自己把握。

   看真题的一个比较可取的方法仍然是理解和吃透,多动手做实验,多想想这些题目可能的变化,这样可以有助于你进一步扎实的掌握Java的基本概念。毕竟147的题目还是有水平的。

6 考试!

   如果上面的准备工作都做好了,你应该可以轻易的拿下SCJP考试,这个考试是2个小时,59道题,有选择,有可能有填空(很简单的,填写运行结果的) 对61%就PASS,对于充分准备的你,这简直太简单了。简单说一下考试报名的过程:

   正式的过程应该是你首先联络SUN的培训中心(北京,上海,广州),询问如何报名参加SCJP考试,他们会告诉你一个银行帐号,你把1250元转入,然后把个人信息和转帐证明传真过去,对方确认后给你寄考试票,然后去http://www.PRometric.com.cn/ 查一下你所在地方的考试中心,联系考试。

   这个过程很麻烦,特别是银行转帐什么的。对于北京,上海等大城市的大考试中心,一般都可以拿现金直接去买票,约时间,考试,不用经过SUN。要简单多了。在北京我给SUN打电话,对方就直接告诉我去哪里买票考试了,估计他们自己也觉得麻烦:-)

   我考试大约用了1个小时的时间就OK了,正是北京大雪纷飞的时候。