scjp(sun 认证 java 程序员),下面来谈谈我的复习方法
很久就写了此文,给了几个考证朋友看,结果他们都轻松通过了,但一直没在网上发表。
首先强烈鄙视那些背题,代考,作弊获得证书的傻比。既然考此证书,说明为了打好基础,为了学习更高层次的java做准备。
1)系统复习
要根据考纲来复习,因此1.4中IO和AWT不考,可以不复习。
考纲如下:
第一部分:声明和访问控制
第二部分:流程控制,断言和异常处理
第三部分:垃圾收集
第四部分:语言基础
第五部分:操作与赋值
第七部分:线程
第八部分:在java.lang包中的基础类
第九部分:集合类框架
只有单选和多选,多选告诉你正确个数,正确率达到52%就pass(61题做对32题)
本人推荐看thinking in java的:3,4,5,6,7,8,10章,讲得比较深刻,完全能应付考试。
再看核心技术卷2的 1.1~1.7,2.1,2.2,因为这2章考得比较简单,没必要看tij,核心技术讲得比较易懂。
java.lang 的复习如下:
能够应用Math类中的abs,ceil,floor,max,min,random,round,sin,cos,tan,sqrt方法。
正确理解String类不可改变的意义。
当执行一段程序,中间包含有wrapper类的一个实例,知道它运行的前提条件运行结果。能用下面wrapper类(例如Integer,Double,等等)的方法来写程序:
doublevalue ,floatvalue ,intvalue ,longvalue ,parseXxx ,getXxx ,toString ,toHexString
大家可以通过查询API来学习
2)做题实践:
有2个题库一定要做:
1.testKing(大概有近300多题)
2.J@whiz考试模拟器上的题(大概有600多题)
基本上模拟器上的分数很接近你的scjp考试分数
这2个题库基本包揽了大部分考试原题或近似题,所以说能基本搞懂,那么考scjp就象玩一样。
当然,这仅仅是本人的考试心得,本人考试时花了1小时没检查就交了,70%,不算高手。
写此文章仅供参考,到时没考过可不要来寻仇哦!
考出scjp只是证明你java基础打好了,也许你还不太会写代码,所以scjp只是一个开始。
之后你可以选择去学j2ee或j2me,甚至深入学习j2se(不推荐),去考其他java认证。
(其实证书没什么用,关键在于这个过程,你可以学到很多,进步更快)
scjp中文大纲
SUN JAVA2认证程序员 平台1.4
第一部分:声明和访问控制
声明,构建,初始化任何类型的数组
声明类,内部类,方法,成员变量,静态成员变量和方法变量,并会应用任何合法的修饰符(如public,final,static,abstract,等等)。能够明了这些修饰符单独和组合起来的含义,并且知道被修饰符修饰的任意对象在各种包相关联系下
的影响。
第二部分:流程控制,断言和异常处理
能够正确使用if,switch语句并且在这些语句中能正确使用合法的参数类型。
能够正确使用所有带标签或不带标签的循环语句,能使用break,continue,能计算在循环中或循环后循环计数器的值。
能够正确使用异常和异常处理语句(try,catch,finally)。能正确声明掷出例外的方法,并知道怎样覆盖它。
知道在程序段的特定点出现的异常对程序的影响。即:异常可能是一个runtime exception,一个checked exception也可能是一个error。(这个程序段可能包括try,catch,finally并以任何可能的合法组合出现。)。
能正确应用断言,区分正确使用的断言和不正确的。明白关于断言机制的正确说法。
第三部分:垃圾收集
明白垃圾收集机制确定性的行为。
能用程序显式的使一个对象能被垃圾收集器合法的收集。
知道在程序的哪一点垃圾收集器能合法地收集一个对象。
第四部分:语言基础
能正确构建包声明,import声明,类声明(包括内部类),接口声明,方法声明(包括用于开始一个类的执行的main方法),变量声明及其其它的一些说明符。
能够正确使用一些类,这些类要么实现了java.lang.Runnable这个接口,要么能正确实现在问题中构建的一些接口。
知道传入main函数的命令行参数的index value。
知道所有JAVA的keyword。注意:考试中不会出现要你区分keyword和各种常数这类深奥的问题。
明白如果没有显式地赋值的各种变量或者数组被使用会出现什么结果。
知道所有原始数据类型的取值范围,怎样声明一个String的字面值等等。
第五部分:操作与赋值
能知道当任何操作符(包括赋值操作符和intanceof操作符)应用于任何操作数(任何类型的类或访问能力或两者的任意组合)的结果。
知道String,Boolean和Object类使用equals(Object)方法后的结果。
知道当对已经知道值的变量进行&,|,&&,||操作时,哪些操作数被运算了,表达式最终的结果是怎样的。
知道Object和原始类型数据传入方法的不同方式,知道如何在这些方法中如何进行赋值或其它修改操作。
第六部分:覆盖,重载,运行时期类型及其面向对象
知道面向对象设计中封装的好处并能用程序实现紧密封装的类,能知道is a和has a的意义。
能正确使用覆盖和重载的方法,能正确调用父类或覆盖了的构建器,知道调用这些方法后的结果。
能实例化任何具体的一般顶层类和内部类。
第七部分:线程
能用java.lang,Thread和java.lang.Runnable两种方法定义,实例化和开始一个新的线程。
知道哪些情况下可能阻止一个线程的执行。
能使用synchronized,wait,notify和notifyAll去解决避免同时访问及其线程间相互通讯的问题。
当执行synchronized,wait,notify和notifyAll时,知道线程和对象锁之间的交互作用。
第八部分:在java.lang包中的基础类
能够应用Math类中的abs,ceil,floor,max,min,random,round,sin,cos,tan,sqrt方法。
正确描述String类不可改变的意义。
当执行一段程序,中间包含有wrapper类的一个实例,知道它运行的前提条件运行结果。能用下面wrapper类(例如Integer,Double,等等)的方法来写程序:
doublevalue
floatvalue
intvalue
longvalue
parseXxx
getXxx
toString
toHexString
第九部分:集合类框架
知道如何在特定的条件下选择适合的集合类/接口。
区分正确和不正确对hashcode方法的实现。