分享
 
 
 

SUN认证Java2程序员考试(SCJP) 试题解析

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

SUN认证Java2程序员考试(SCJP) 试题解析

前言

无论你是个新手,还是程序设计方面的专家,你都会惊异于Sun公司Java的无穷魅力。Java带给你的并不仅仅是面向对象、开放、平台无关、易用、安全和“Write once, run anywhere”等软件开发方面的优势,更重要的一点是,它提供了一种新颖的表达思想的方式,一种全新的思维模式。随着待解决问题的规模不断膨胀,Java彻底的面向对象思想的灵活性就会凸现出来。毋庸置疑,Java是你开发大型软件时最得心应手的利器或是你转行IT的入门首选。

SCJP考试简介

·考试方式

全英文试题,以电脑作答,在授权的Prometric考试中心参加考试

考试编号:310-025

先决条件:无

考试题型:复选、填空和拖拽匹配

题量:59

及格标准:61%

时限:120分钟

费用:1250元

·要求具备的能力

使用Java编程语言创建Java应用程序和applets。

定义和描述垃圾搜集,安全性和Java虚拟机(JVM)。

描述和使用Java语言面向对象的特点。

开发图形用户界面(GUI)。利用Java支持的多种布局管理。

描述和使用Java的事件处理模式。

使用Java语言的鼠标输入、文本、窗口和菜单窗口部件。

使用Java的例外处理来控制程序执行和定义用户自己的例外事件。

使用Java语言先进的面向对象特点, 包括方法重载、方法覆盖、抽象类、接口、final、static和访问控制。

实现文件的输入/输出 (I/O)。

使用Java语言内在的线程模式来控制多线程。

使用Java 的Sockets机制进行网络通信。

试题分析

例题1:

Choose the three valid identifiers from those listed below.

A. IDoLikeTheLongNameClass

B. $byte

C. const

D. _ok

E. 3_case

解答:A, B, D

点评:Java中的标示符必须是字母、美元符($)或下划线(_)开头。关键字与保留字不能作为标示符。选项C中的const是Java的保留字,所以不能作标示符。选项E中的3_case以数字开头,违反了Java的规则。

例题2:

How can you force garbage collection of an object?

A. Garbage collection cannot be forced

B. Call System.gc().

C. Call System.gc(), passing in a reference to the object to be garbage collected.

D. Call Runtime.gc().

E. Set all references to the object to new values(null, for example).

解答:A

点评:在Java中垃圾收集是不能被强迫立即执行的。调用System.gc()或Runtime.gc()静态方法不能保证垃圾收集器的立即执行,因为,也许存在着更高优先级的线程。所以选项B、D不正确。选项C的错误在于,System.gc()方法是不接受参数的。选项E中的方法可以使对象在下次垃圾收集器运行时被收集。

例题3:

Consider the following class:

1. class Test(int i) {

2. void test(int i) {

3. System.out.println(“I am an int.”);

4. }

5. void test(String s) {

6. System.out.println(“I am a string.”);

7. }

8.

9. public static void main(String args[]) {

10. Test t=new Test();

11. char ch=“y”;

12. t.test(ch);

13. }

14. }

Which of the statements below is true?(Choose one.)

A. Line 5 will not compile, because void methods cannot be overridden.

B. Line 12 will not compile, because there is no version of test() that rakes a char argument.

C. The code will compile but will throw an exception at line 12.

D. The code will compile and produce the following output: I am an int.

E. The code will compile and produce the following output: I am a String.

解答:D

点评:在第12行,16位长的char型变量ch在编译时会自动转化为一个32位长的int型,并在运行时传给void test(int i)方法。

例题4:

Which of the following lines of code will compile without error?

A.

int i=0;

if (i) {

System.out.println(“Hi”);

}

B.

boolean b=true;

boolean b2=true;

if(b==b2) {

System.out.println(“So true”);

}

C.

int i=1;

int j=2;

if(i==1|| j==2)

System.out.println(“OK”);

D.

int i=1;

int j=2;

if (i==1 &| j==2)

System.out.println(“OK”);

解答:B, C

点评:选项A错,因为if语句后需要一个boolean类型的表达式。逻辑操作有^、&、| 和 &&、||,但是“&|”是非法的,所以选项D不正确。

例题5:

Which two demonstrate a "has a" relationship? (Choose two)

A. public interface Person { }

public class Employee extends Person{ }

B. public interface Shape { }

public interface Rectandle extends Shape { }

C. public interface Colorable { }

public class Shape implements Colorable

{ }

D. public class Species{ }

public class Animal{private Species species;}

E. interface Component{ }

class Container implements Component{

private Component[] children;

}

解答:D, E

点评: 在Java中代码重用有两种可能的方式,即组合(“has a”关系)和继承(“is a”关系)。“has a”关系是通过定义类的属性的方式实现的;而“is a”关系是通过类继承实现的。本例中选项A、B、C体现了“is a”关系;选项D、E体现了“has a”关系。

例题6:

Which two statements are true for the class java.util.TreeSet? (Choose two)

A. The elements in the collection are ordered.

B. The collection is guaranteed to be immutable.

C. The elements in the collection are guaranteed to be unique.

D. The elements in the collection are accessed using a unique key.

E. The elements in the collection are guaranteed to be synchronized

解答:A, C

点评:TreeSet类实现了Set接口。Set的特点是其中的元素惟一,选项C正确。由于采用了树形存储方式,将元素有序地组织起来,所以选项A也正确。

例题7:

True or False: Readers have methods that can read and return floats and doubles.

A. Ture

B. False

解答:B

点评: Reader/Writer只处理Unicode字符的输入输出。float和double可以通过stream进行I/O.

例题8:

What does the following paint() method draw?

1. public void paint(Graphics g) {

2. g.drawString(“Any question”, 10, 0);

3. }

A. The string “Any question?”, with its top-left corner at 10,0

B. A little squiggle coming down from the top of the component.

解答:B

点评:drawString(String str, int x, int y)方法是使用当前的颜色和字符,将str的内容显示出来,并且最左的字符的基线从(x,y)开始。在本题中,y=0,所以基线位于最顶端。我们只能看到下行字母的一部分,即字母‘y’、‘q’的下半部分。

例题9:

What happens when you try to compile and run the following application? Choose all correct options.

1. public class Z {

2. public static void main(String[] args) {

3. new Z();

4. }

5.

6. Z() {

7. Z alias1 = this;

8. Z alias2 = this;

9. synchronized(alias1) {

10. try {

11. alias2.wait();

12. System.out.println(“DONE WAITING”);

13. }

14. catch (InterruptedException e) {

15. System.out.println(“INTERR

UPTED”);

16. }

17. catch (Exception e) {

18. System.out.println(“OTHER EXCEPTION”);

19. }

20. finally {

21. System.out.println

(“FINALLY”);

22. }

23. }

24. System.out.println(“ALL DONE”);

25. }

26. }

A. The application compiles but doesn't print anything.

B. The application compiles and print “DONE WAITING”

C. The application compiles and print “FINALLY”

D. The application compiles and print “ALL DONE”

E. The application compiles and print “INTERRUPTED”

解答:A

点评:在Java中,每一个对象都有锁。任何时候,该锁都至多由一个线程控制。由于alias1与alias2指向同一对象Z,在执行第11行前,线程拥有对象Z的锁。在执行完第11行以后,该线程释放了对象Z的锁,进入等待池。但此后没有线程调用对象Z的notify()和notifyAll()方法,所以该进程一直处于等待状态,没有输出。

例题10:

Which statement or statements are true about the code listed below? Choose three.

1. public class MyTextArea extends TextArea {

2. public MyTextArea(int nrows, int ncols) {

3. enableEvents(AWTEvent.TEXT_

EVENT_MASK);

4. }

5.

6. public void processTextEvent

(TextEvent te) {

7. System.out.println(“Processing a text event.”);

8. }

9. }

A. The source code must appear in a file called MyTextArea.java

B. Between lines 2 and 3, a call should be made to super(nrows, ncols) so that the new component will have the correct size.

C. At line 6, the return type of processTextEvent() should be declared boolean, not void.

D. Between lines 7 and 8, the following code should appear: return true.

E. Between lines 7 and 8, the following code should appear: super.processTextEvent(te).

解答:A, B, E

点评:由于类是public,所以文件名必须与之对应,选项A正确。如果不在2、3行之间加上super(nrows,ncols)的话,则会调用无参数构建器TextArea(), 使nrows、ncols信息丢失,故选项B正确。在Java2中,所有的事件处理方法都不返回值,选项C、D错误。选项E正确,因为如果不加super.processTextEvent(te),注册的listener将不会被唤醒。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有