本人于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了,正是北京大雪纷飞的时候。
(本文为作者个人言论,其中所涉及辅导材料的版权问题与本站无关)