hi,这是本人的scjp经验,望对大家,特别是想考scjp的朋友有所帮助。
记得以前,大概是在去年的8月左右,在考试中心报了名,费用是另人心痛,花了1350rmb。不过,今天的考试倒是能够安慰一些,以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纲里面列出了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虽然可以,但它是个抽象类,不是接口。呵呵,这可再次提醒大家