JAVA认证真题35道SCJP考试真题精解.docx
- 文档编号:6460384
- 上传时间:2023-01-06
- 格式:DOCX
- 页数:17
- 大小:24.86KB
JAVA认证真题35道SCJP考试真题精解.docx
《JAVA认证真题35道SCJP考试真题精解.docx》由会员分享,可在线阅读,更多相关《JAVA认证真题35道SCJP考试真题精解.docx(17页珍藏版)》请在冰豆网上搜索。
JAVA认证真题35道SCJP考试真题精解
例题1:
Choosethethreevalididentifiersfromthoselistedbelow.
A.IDoLikeTheLongNameClass
B.$byte
C.const
D._ok
E.3_case
解答:
A,B,D
点评:
Java中的标示符必须是字母、美元符($)或下划线(_)开头。
关键字与保留字不能作为标示符。
选项C中的const是Java的保留字,所以不能作标示符。
选项E中的3_case以数字开头,违反了Java的规则。
例题2:
Howcanyouforcegarbagecollectionofanobject?
A.Garbagecollectioncannotbeforced
B.CallSystem.gc().
C.CallSystem.gc(),passinginareferencetotheobjecttobegarbagecollected.
D.CallRuntime.gc().
E.Setallreferencestotheobjecttonewvalues(null,forexample).
解答:
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. }
Whichofthestatementsbelowistrue?
(Chooseone.)
A.Line5willnotcompile,becausevoidmethodscannotbeoverridden.
B.Line12willnotcompile,becausethereisnoversionoftest()thatrakesacharargument.
C.Thecodewillcompilebutwillthrowanexceptionatline12.
D.Thecodewillcompileandproducethefollowingoutput:
Iamanint.
E.Thecodewillcompileandproducethefollowingoutput:
IamaString.
解答:
D
点评:
在第12行,16位长的char型变量ch在编译时会自动转化为一个32位长的int型,并在运行时传给voidtest(inti)方法。
例题4:
Whichofthefollowinglinesofcodewillcompilewithouterror?
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中代码重用有两种可能的方式,即组合(“hasa”关系)和继承(“isa”关系)。
“hasa”关系是通过定义类的属性的方式实现的;而“isa”关系是通过类继承实现的。
本例中选项A、B、C体现了“isa”关系;选项D、E体现了“hasa”关系。
例题6:
Whichtwostatementsaretruefortheclassjava.util.TreeSet?
(Choosetwo)
A.Theelementsinthecollectionareordered.
B.Thecollectionisguaranteedtobeimmutable.
C.Theelementsinthecollectionareguaranteedtobeunique.
D.Theelementsinthecollectionareaccessedusingauniquekey.
E.Theelementsinthecollectionareguaranteedtobesynchronized
解答:
A,C
点评:
TreeSet类实现了Set接口。
Set的特点是其中的元素惟一,选项C正确。
由于采用了树形存储方式,将元素有序地组织起来,所以选项A也正确。
例题7:
TrueorFalse:
Readershavemethodsthatcanreadandreturnfloatsanddoubles.
A.Ture
B.False
解答:
B
点评:
Reader/Writer只处理Unicode字符的输入输出。
float和double可以通过stream进行I/O.
例题8:
Whatdoesthefollowingpaint()methoddraw?
1.publicvoidpaint(Graphicsg){
2.g.drawString(“Anyquestion”,10,0);
3.}
A.Thestring“Anyquestion?
”,withitstop-leftcornerat10,0
B.Alittlesquigglecomingdownfromthetopofthecomponent.
解答:
B
点评:
drawString(Stringstr,intx,inty)方法是使用当前的颜色和字符,将str的内容显示出来,并且最左的字符的基线从(x,y)开始。
在本题中,y=0,所以基线位于最顶端。
我们只能看到下行字母的一部分,即字母‘y’、‘q’的下半部分。
例题9:
Whathappenswhenyoutrytocompileandrunthefollowingapplication?
Chooseallcorrectoptions.
以下是引用片段:
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.Theapplicationcompilesbutdoesn'tprintanything.
B.Theapplicationcompilesandprint“DONEWAITING”
C.Theapplicationcompilesandprint“FINALLY”
D.Theapplicationcompilesandprint“ALLDONE”
E.Theapplicationcompilesandprint“INTERRUPTED”
解答:
A
点评:
在Java中,每一个对象都有锁。
任何时候,该锁都至多由一个线程控制。
由于alias1与alias2指向同一对象Z,在执行第11行前,线程拥有对象Z的锁。
在执行完第11行以后,该线程释放了对象Z的锁,进入等待池。
但此后没有线程调用对象Z的notify()和notifyAll()方法,所以该进程一直处于等待状态,没有输出。
例题10:
Whichstatementorstatementsaretrueaboutthecodelistedbelow?
Choosethree.
以下是引用片段:
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.ThesourcecodemustappearinafilecalledMyTextArea.java
B.Betweenlines2and3,acallshouldbemadetosuper(nrows,ncols)sothatthenewcomponentwillhavethecorrectsize.
C.Atline6,thereturntypeofprocessTextEvent()shouldbedeclaredboolean,notvoid.
D.Betweenlines7and8,thefollowingcodeshouldappear:
returntrue.
E.Betweenlines7and8,thefollowingcodeshouldappear:
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将不会被唤醒。
11、Whichstatementaboutthegarbagecollectionmechanismaretrue?
A.Garbagecollectionrequireadditionalprogramecodeincaseswheremultiplethreadsarerunning.
B.Theprogrammercanindicatethatareferencethroughalocalvariableisnolongerofinterest.
C.TheprogrammerhasamechanismthatexplicityandimmediatelyfreesthememoryusedbyJavaobjects.
D.ThegarbagecollectionmechanismcanfreethememoryusedbyJavaObjectatexplectiontime.
E.Thegarbagecollectionsystemneverreclaimsmemoryfromobjectswhilearestillaccessibletorunninguserthreads.
答案:
B、E
JAVA的垃圾回收机制是通过一个后台系统级线程对内存分配情况进行跟踪实现的,对程序员来说是透明的,程序员没有任何方式使无用内存显示的、立即的被释放。
而且它是在程序运行期间发生的。
答案B告诉我们程序员可以使一个本地变量失去任何意义,例如给本地变量赋值为“null”;答案E告诉我们在程序运行期间不可能完全释放内存。
12、Givethefollowingmethod:
以下是引用片段:
1) public void method( ){
2) String a,b;
3) a=new String(“hello world”);
4) b=new String(“game over”);
5) System.out.println(a+b+”ok”);
6) a=null;
7) a=b;
8) System.out.println(a);
9) }
Intheabsenceofcompileroptimization,whichistheearliestpointtheobjectareferedisdefinitelyelibiletobegarbagecollection.
A.beforeline3
B.beforeline5
C.beforeline6
D.beforeline7
E.Beforeline9
答案:
D
第6行将null赋值给a以后,a以前保存的引用所指向的内存空间就失去了作用,它可能被释放。
所以对象a可能最早被垃圾回收是在第7行以前,故选择D选项。
13、Intheclassjava.awt.AWTEvent,whichistheparentclassuponwhichjdk1.1awteventsarebasedthereisamethodcalledgetIDwhichphraseaccuratelydescribesthereturnvalueofthismethod?
A.Itisareferencetotheobjectdirectlyaffectedbythecauseoftheevent.
B.Itisanindicationofthenatureofthecauseoftheevent.
C.Itisanindicationofthepositionofthemousewhenitcausedtheevent.
D.Inthecaseofamouseclick,itisanindicationofthetextunderthemouseatthetimeoftheevent.
E.Ittellsthestateofcertainkeysonthekeybordatthetimeoftheevent.
F.Itisanindicationofthetimeatwhichtheeventoccurred.
答案:
B
请查阅JAVA类库。
getID方法的返回值是“eventtype”。
在认证考试中,总会有类似的书本以外的知识,这只能靠多实践来增长知识了。
14、Whichstatementaboutlisteneristrue?
A.Mostcomponentallowmultiplelistenerstobeadded.
B.Ifmultiplelistenerbeaddtoasinglecomponent,theeventonlyaffectedonelistener.
C.Componentdon?
tallowmultiplelistenerstobeadd.
D.ThelistenermechanismallowsyoutocallanaddXxxxListenermethodasmanytimesasisneeded,specifyingasmanydifferentlistenersasyourdesignrequire.
答案:
A、D
控件可以同时使用多个“addXxxxListener”方法加入多个监听器。
并且当多个监听器加入到同一控件中时,事件可以响应多个监听器,响应是没有固定顺序的。
15、Givethefollowingcode:
以下是引用片段:
public class Example{
public static void main(String args[] ){
int l=0;
do{
System.out.println(“Doing it for l is:
”+l);
}while(--l>0)
System.out.println(“Finish”);
}
}
Whichwellbeoutput:
A.Doingitforlis3
B.Doingitforlis1
C.Doingitforlis2
D.Doingitforlis0
E.Doingitforlis?
C1
F.Finish
答案:
D、F
本题主要考察考生对流程控制的掌握情况。
这是当型循环,条件为真执行,条件为假则退出。
循环体至少执行一次,故会输出D。
循环体以外的语句总会被执行,故输出F。
16、Givethecodefragment:
以下是引用片段:
1) switch(x){
2) case 1:
System.out.println(“Test 1”);break;
3) case 2:
4) case 3:
System.out.println(“Test 2”);break;
5) default:
System.out.println(“end”);
6) }
whichvalueofxwouldcause“Test2”totheoutput:
A.1
B.2
C.3
D.default
答案:
B.C
在开关语句中,标号总是不被当做语句的一部分,标号的作用就是做为条件判断而已,一旦匹配成功,就执行其后的语句,一直遭遇break语句为止。
(包括default语句在内)
17、Giveincompletedmethod:
以下是引用片段:
1)
2) { if(unsafe()){//do something…}
3) else if(safe()){//do the other…}
4) }
Themethodun
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 认证 35 SCJP 考试 真题精解
![提示](https://static.bdocx.com/images/bang_tan.gif)