QUESTION61GIVENTHEEXHIBIT:Whichstatementistrue?A.Alloftheassertstatementsareusedappropriately.B.Onlytheassertstatementonline31isusedappropriatelyC.Theassertstatementsonlines29and31areusedappropriatelyD.Theassertstatementsonlines26and29areusedappropriatelyE.Theassertstatementsonlines29and33areusedappropriatelyF.Theassertstatementsonlines29,31and33areusedappropriatelyG.Theassertstatementsonlines26,29and31areusedappropriately断言应该用在“你认为”你的程序不可能产生错误的地方,而且有没有启用断言,都不会影响程序的正常运行。断言使用限制:1.不要在public方法中,用断言来检查参数的正确性;2.不要让断言语句去处理一些程序必须的流程。原因:1.public方法会被别人调用,你不能保证他一定启用断言;如果没有启用,那么用断言来做参数的检查也就没有意义了。所以不要用断言来检查参数,公共方法的参数一定要用代码执行检查;2.如果用断言来控制程序执行流程,如果没有启用断言,那么程序就不能正确执行下去。另外,断言语句不可以有任何边界效应,不要使用断言语句去修改变量和改变方法的返回值,如果这样当启动断言和不启动断言执行的结果会截然不同。断言的使用时机:1.检查流程的不变性:在if-elseswitch-case的预期结果之外可以加上断言做额外的检查。2.内部执行的不变性:if(true){return;}assertfalse;3.检查私有方法的参数,结果等4.程序运行中的一致性断言语句不是永远会执行,可以屏蔽也可以启用javac–source1.4*.java需要java–ea启用assert;当判断条件为FALSE时就抛出错误。Answer:(C)26行不合适:不要对public方法的参数断言29合适:程序员在程序中最不大可能到达的地方断言31合适:断言private方法的参数33行不合适:启用和不启用断言会产生不同的程序执行序参考大纲:异常处理—断言和AssertionErrorQUESTION62GIVENTHEEXHIBIT:Whatistheresult?A.nullB.zeroC.someD.CompilationfailsE.AnexceptionisthrownatruntimeAnswer:(D)13行会报错,应在15行使用elseif参考大纲:流程控制QUESTION63Giventheexhibit:Whatistheresult?A.testB.ExceptionC.CompilationfailsD.NullPointerExceptionAnswer:(C)18行出错,应该先catch子异常,再catchException;13行把args赋null,14行会报NullPointerException如果没有第13行运行时14行会报ArrayIndexOutOfBoundsException异常。参考大纲:异常处理QUESTION64Giventheexhibit:Whatistheresult?A.CompilationfailsB.aAaAaAaAAaaAaAC.AAaaAaAaAaaAaAD.AaAAAaaaAaAaAaE.aAaAaAaAaAAAaaF.AnexceptionisthrownatruntimeAnswer:(C)第10行将对strings这个集合做自然排序(ASCII小到大,一个一个比较)Collections.sort(Listlist)对list进行排序,对set不能排序!List里可以放对象,所以当list里面存放的是对象的时候就不能用Collections.sort(Listlist)去排序了。因为JVM不知道用什么规则去排序!!只有把对象类实现Comparable接口,然后改写compareTo()参考大纲:集合QUESTION65Giventheexhibit:Whatistheresult?A.0B.1C.2D.3E.4F.Compilationfails.G.AnexceptionisthrownatruntimeAnswer:(D)Set中存放的元素是无序不重复的。如果你想Set里Add一个元素,首先他会去调用equals方法,判断set中是否有该元素,如果有则不更改set的值并返回false,如果没有,则把元素添加进去,并返回true。Ws1ws2是自定义的类,ws1和ws2equals不相等;String的equals方法已经改写,s1和s2相等;比较两个对象是否相同,先比较hashcode,如果相同,在用equals方法比较.如果都相同则两个对象就认为是相同的.Hashcode是把对象的内存地址经过运算得来的.基本数据类型和基本数据类型的包装类还有String类都已经覆盖了hashcode(),equals(),所以这些对象的值只要一样就认为对象一样.参考大纲:集合QUESTION66Givenapre-genericsimplementationofamethod:Whichthreechangesmustbemadetothemethodsumtousegenerics?(choosethree)A.removeline14B.replaceline14withinti=iter.next();C.replaceline13withfor(inti:intList){D.replaceline13withfor(Iteratoriter:intList)E.replacethemethoddeclarationwithsum(ListintintList)F.replacethemethoddeclarationwithsum(ListIntegerintList)Answer:(A,C,F)publicstaticintsum(ListIntegerintList){intsum=0;for(inti:intList){sum+=i;}returnsum;}参考大纲:集合和泛型Whatistheresult?A.Compilationfailsduetoanerrorinline23.B.Compilationfailsduetoanerrorinline29.C.AClassCastExceptationoccursinline29.D.AClassCastExceptationoccursinline31.E.Thevalueofallfourobjectprintsinnaturalorder.Answer:(C)Arrays.sort(Object[]a)方法中,a的每一个元素都必须是相互可以比较的(调用o1.compareTo(Objecto2))。否则会报ClassCastException的异常。参考大纲:泛型QUESTION68PlacethecodeintopositiontocreateaclassthatmapsfromStringstoIntegervalues.Theresultofexecutionmustbe[one].Someoptionsmaybeusedmorethanonce.Answer:()publicclassNumberNames{privateHashMapString,Integermap=newHashMapString,Integer();publicvoidput(Stringname,Integervalue){map.put(name,value);}publicSetStringgetNames(){Returnmap.keySet();}}QUESTION69Placearesultontoeachmethodcalltoindicatewhatwouldhappenifthemethodcallwereinsertedatline9.Note:Resultscanbeusedmorethanonce.Answer:()MethodResultm1(listA)Compilesandrunswithouterror泛型规范没问题m2(listA)Compilesandrunswithouterror泛型规范没问题m1(listB)CompilesandrunswithouterrorB是A的子类,泛型规范没问题m2(listB)Doesnotcompilem1(listO)Doesnotcompilem2(listO)DoesnotcompileQUESTION70Giventheexhibit:Whatistheresult?A.apple:appleB.carrot:appleC.apple:bananaD.banana:appleE.carrot:carrotF.carrot:bananaAnswer:(C)PriorityQueue优先级队列:预设是自然排序,因此pq内的元素顺序将是apple-banana-carrotpoll()取第一个元素,取完之后删除,peek取第一个元素,并不删除元素QUESTION71Given:AprogrammerisdevelopingaclassKey,thatwillbeusedasakeyinastandardjava.util.HashMap.Whichtwomethodsshouldbeoverriddentoassurethatkeyworkscorrectlyasakey?(choosetwo)A.publicinthashCode()B.publicBooleanequals(Keyk)C.publicintcompareTo(Objecto)D.publicBooleanequals(Objecto)Answer:(A,D)HashMap中的key不能重复,因此必须实现hashCode和equals方法QUESTION72---Giventheexhibit:Whichtwo,insertedatline2willallowthecodetocompile?(ChooseTwo)A.publicclassMinMax?{B.publicclassMinMax?extendsNumber{C.publicclassMinMaxNextendsObject{D.publicclassMinMaxNextendsNumber{E.publicclassMinMax?extendsObject{F.publicclassMinMaxNextendsInteger{Answer:(D,F)N是泛型类别变量,它相当于一个类型。A类声明是不能用?这个万用字符。B同上CObject没有doubleValue()方法。DOK.E同A。FOK.QUESTION73Giventheexhibit:enumExample{ONE,TWO,THREE}Whichstatementistrue?A.Theexpressions(ONE==ONE)andONE.equals(ONE)arebothguaranteedtobetrue.B.Theexpression(ONETWO)isguaranteedtobetrueandONE.compareTo(TWO)isguaranteedtobelessthanone.C.TheExamplevaluescannotbeusedinar