您好,欢迎访问三七文档
例题1:Choosethethreevalididentifiersfromthoselistedbelow.A.IDoLikeTheLongNameClassB.$byteC.constD._okE.3_case解答:A,B,D点评:Java中的标示符必须是字母、美元符($)或下划线(_)开头。关键字与保留字不能作为标示符。选项C中的const是Java的保留字,所以不能作标示符。选项E中的3_case以数字开头,违反了Java的规则。例题2:Howcanyouforcegarbagecollectionofanobject?A.GarbagecollectioncannotbeforcedB.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:Considerthefollowingclass:1.classTest(inti){2.voidtest(inti){3.System.out.println(“Iamanint.”);4.}5.voidtest(Strings){6.System.out.println(“Iamastring.”);7.}8.9.publicstaticvoidmain(Stringargs[]){10.Testt=newTest();11.charch=“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.inti=0;if(i){System.out.println(“Hi”);}B.booleanb=true;booleanb2=true;if(b==b2){System.out.println(“Sotrue”);}C.inti=1;intj=2;if(i==1||j==2)System.out.println(“OK”);D.inti=1;intj=2;if(i==1&|j==2)System.out.println(“OK”);解答:B,C点评:选项A错,因为if语句后需要一个boolean类型的表达式。逻辑操作有^、&、|和&&、||,但是“&|”是非法的,所以选项D不正确。例题5:Whichtwodemonstrateahasarelationship?(Choosetwo)A.publicinterfacePerson{}publicclassEmployeeextendsPerson{}B.publicinterfaceShape{}publicinterfaceRectandleextendsShape{}C.publicinterfaceColorable{}publicclassShapeimplementsColorable{}D.publicclassSpecies{}publicclassAnimal{privateSpeciesspecies;}E.interfaceComponent{}classContainerimplementsComponent{privateComponent[]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.TureB.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,0B.Alittlesquigglecomingdownfromthetopofthecomponent.解答:B点评:drawString(Stringstr,intx,inty)方法是使用当前的颜色和字符,将str的内容显示出来,并且最左的字符的基线从(x,y)开始。在本题中,y=0,所以基线位于最顶端。我们只能看到下行字母的一部分,即字母‘y’、‘q’的下半部分。例题9:Whathappenswhenyoutrytocompileandrunthefollowingapplication?Chooseallcorrectoptions.1.publicclassZ{2.publicstaticvoidmain(String[]args){3.newZ();4.}5.6.Z(){7.Zalias1=this;8.Zalias2=this;9.synchronized(alias1){10.try{11.alias2.wait();12.System.out.println(“DONEWAITING”);13.}14.catch(InterruptedExceptione){15.System.out.println(“INTERRUPTED”);16.}17.catch(Exceptione){18.System.out.println(“OTHEREXCEPTION”);19.}20.finally{21.System.out.println(“FINALLY”);22.}23.}24.System.out.println(“ALLDONE”);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.publicclassMyTextAreaextendsTextArea{2.publicMyTextArea(intnrows,intncols){3.enableEvents(AWTEvent.TEXT_EVENT_MASK);4.}5.6.publicvoidprocessTextEvent(TextEventte){7.System.out.println(“Processingatextevent.”);8.}9.}A.ThesourcecodemustappearinafilecalledMyTextArea.javaB.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.Theprogrammercanindicatethat
本文标题:SCJP考试例题
链接地址:https://www.777doc.com/doc-6107836 .html