资源描述:
《基础部分面试千题目库》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
JAVA基础部分面试题库第一部分:选择题1)哪个不是面向对象的特征()a)封装性b)继承性c)多态性d)健壮性2)编译JAVA文件的命令是()。a)Javab)Javacc)Javadbd)Javaw3)JAVA源文件的扩展名是()。a)Classb)exec)javad)dll4)JAVA内部使用的编码格式是()。a)UTF-8b)ASCIIc)UNICODEd)ISO8859-15)下列变量名称不合法的是()a)Indexb)$bc3&c)_cccded)34#bc56)下边对基本数据类型的说明正确的是()a)Int可以自动转换为BYTE类型b)DOUBLE类型的数据占用2个字节c)JAVA中一共有4类8种基本数据类型d)JAVA中一共有3类8种基本数据类型7)下列不是JAVA关键字的是()a)gotob)ifc)countd)private8)下列变量声明中正确的是()a)Floatf=3.13b)Booleanb=0c)Intnumber=5d)IntxBytea=9)publicvoidgo(){Stringo="";z:for(intx=0;x<3;x++){for(inty=0;y<2;y++){if(x==1)break;if(x==2&&y==1)breakz;o=o+x+y;}}System.out.println(o);}程序的执行结果是()a)00b)0001c)000120d)00012021e)Compilationfails.f)Anexceptionisthrownatruntime 10)classPayload{privateintweight;publicPayload(intw){weight=w;}publicvoidsetWeight(intw){weight=w;}publicStringtoString(){returnInteger.toString(weight);}}publicclassTestPayload{staticvoidchangePayload(Payloadp){/*insertcode*/}publicstaticvoidmain(String[]args){Payloadp=newPayload(200);p.setWeight(1024);changePayload(p);System.out.println("pis"+p);}}Insertcode处写入哪句话,可以使程序的输出结果是420()a)p.setWeight(420);b)p.changePayload(420);c)p=newPayload(420);d)Payload.setWeight(420);e)p=Payload.setWeight(420);11)voidwaitForSignal(){Objectobj=newObject();synchronized(Thread.currentThread()){obj.wait();obj.notify();}}这个程序片段的运行结果是什么()a)ThiscodecanthrowanInterruptedException.b)ThiscodecanthrowanIllegalMonitorStateException.c)ThiscodecanthrowaTimeoutExceptionaftertenminutes.d)Reversingtheorderofobj.wait()andobj.notify()mightcausethismethodtocompletenormally.12)publicclassThreads2implementsRunnable{publicvoidrun(){System.out.println("run.");thrownewRuntimeException("Problem");}publicstaticvoidmain(String[]args){Threadt=newThread(newThreads2());t.start();System.out.println("Endofmethod.");}}运行结果是什么,请选择2个() a)java.lang.RuntimeException:Problemb)run.java.lang.RuntimeException:Problemc)Endofmethod.java.lang.RuntimeException:Problemd)Endofmethod.run.java.lang.RuntimeException:Probleme)run.java.lang.RuntimeException:ProblemEndofmethod.13)下边哪2句话的描述是正确的()a)Itispossibleformorethantwothreadstodeadlockatonceb)TheJVMimplementationguaranteesthatmultiplethreadscannotenterintoadeadlockedstate.c)Deadlockedthreadsreleaseoncetheirsleep()method'ssleepdurationhasexpired.d)Deadlockingcanoccuronlywhenthewait(),notify(),andnotifyAll()methodsareusedincorrectly.e)Itispossibleforasingle-threadedapplicationtodeadlockifsynchronizedblocksareusedincorrectly.f)fapieceofcodeiscapableofdeadlocking,youcannoteliminatethepossibilityofdeadlockingbyinsertinginvocationsofThread.yield().14)publicclassThreads2implementsRunnable{publicvoidrun(){System.out.println("run.");thrownewRuntimeException("Problem");}publicstaticvoidmain(String[]args){Threadt=newThread(newThreads2());t.start();System.out.println("Endofmethod.");}}程序运行结果是,选择2个()a)java.lang.RuntimeException:Problemb)run.java.lang.RuntimeException:ProblemEndofmethodc)Endofmethod.java.lang.RuntimeException:Problemd)Endofmethod.run.java.lang.RuntimeException:Problem15)voidwaitForSignal(){Objectobj=newObject();synchronized(Thread.currentThread()){obj.wait();obj.notify();}}下列那句描述是正确的()a)ThiscodecanthrowanInterruptedException.b)ThiscodecanthrowanIllegalMonitorStateException.c)ThiscodecanthrowaTimeoutExceptionaftertenminutes.d)ThiscodedoesNOTcompileunless"obj.wait()"isreplacedwith"((Thread)obj).wait()".16)11.classPingPong2{synchronizedvoidhit(longn){ for(inti=1;i<3;i++)System.out.print(n+"-"+i+"");}}publicclassTesterimplementsRunnable{staticPingPong2pp2=newPingPong2();publicstaticvoidmain(String[]args){newThread(newTester()).start();newThread(newTester()).start();}.publicvoidrun(){pp2.hit(Thread.currentThread().getId());}}运行结果是()a)Theoutputcouldbe5-16-16-25-2b)Theoutputcouldbe6-16-25-15-2c)Theoutputcouldbe6-15-26-25-1d)Theoutputcouldbe6-16-25-17-117)1.publicclassThreads4{publicstaticvoidmain(String[]args){newThreads4().go();}publicvoidgo(){Runnabler=newRunnable(){publicvoidrun(){System.out.print("foo");}};Threadt=newThread(r);t.start();t.start();}}运行结果是()a)Compilationfails.b)Anexceptionisthrownatruntime.c)Thecodeexecutesnormallyandprints"foo".d)Thecodeexecutesnormally,butnothingisprinted.18)11.publicclassBarn{publicstaticvoidmain(String[]args){newBarn().go("hi",1);newBarn().go("hi","world",2);}publicvoidgo(String...y,intx){System.out.print(y[y.length-1]+"");}}运行结果是()a)hihib)hiworldc)Compilationfailsd)Anexceptionisthrownatruntime.19)10.classNav{ .publicenumDirection{NORTH,SOUTH,EAST,WEST}}publicclassSprite{//insertcodehere}哪句代码放到14行,程序可以正常编译()a)Directiond=NORTH;b)Nav.Directiond=NORTH;c)Directiond=Direction.NORTH;d)Nav.Directiond=Nav.Direction.NORTH;20)11.publicclassRainbow{publicenumMyColor{RED(0xff0000),GREEN(0x00ff00),BLUE(0x0000ff);privatefinalintrgb;MyColor(intrgb){this.rgb=rgb;}publicintgetRGB(){returnrgb;}};publicstaticvoidmain(String[]args){//insertcodehere}}哪句代码放到19行,程序可以正常编译()a)MyColorskyColor=BLUE;b)MyColortreeColor=MyColor.GREEN;c)Compilationfailsduetoothererror(s)inthecode.d)MyColorpurple=MyColor.BLUE+MyColor.RED;21)5.classAtom{Atom(){System.out.print("atom");}}classRockextendsAtom{Rock(Stringtype){System.out.print(type);}}publicclassMountainextendsRock{Mountain(){super("granite");newRock("granite");}publicstaticvoidmain(String[]a){newMountain();}}运行结果是()a)Compilationfailsb)atomgranitegranitec)Anexceptionisthrownatruntime.d)atomgraniteatomgranite22)1.interfaceTestA{StringtoString();}publicclassTest{publicstaticvoidmain(String[]args){4System.out.println(newTestA(){publicStringtoString(){return"test";} }}}运行结果是()a)testb)nullc)Anexceptionisthrownatruntime.d)Compilationfailsbecauseofanerrorinline1.23)11.publicstaticvoidparse(Stringstr){try{floatf=Float.parseFloat(str);}catch(NumberFormatExceptionnfe){f=0;}finally{17.System.out.println(f);}}publicstaticvoidmain(String[]args){parse("invalid");}运行结果是()a)0.0b)Compilationfails.c)AParseExceptionisthrownbytheparsemethodatruntimed)ANumberFormatExceptionisthrownbytheparsemethodatruntime24)1.publicclassBlip{protectedintblipvert(intx){return0;}}classVertextendsBlip{//insertcodehere}下列哪5个方法放到代码第五行,可以让程序编译正确,选择5个()a)publicintblipvert(intx){return0;}b)privateintblipvert(intx){return0;}c)privateintblipvert(longx){return0;}d)protectedlongblipvert(intx){return0;}e)protectedintblipvert(longx){return0;}f)protectedlongblipvert(longx){return0;}g)protectedlongblipvert(intx,inty){return0;}25)1.classSuper{privateinta;protectedSuper(inta){this.a=a;}}...classSubextendsSuper{publicSub(inta){super(a);}publicSub(){this.a=5;}}下列哪2条语句是正确的()a)Changeline2to:publicinta;b)Changeline2to:protectedinta;c)Changeline13to:publicSub(){this(5);}d)Changeline13to:publicSub(){super(5);} e)Changeline13to:publicSub(){super(a);}26)packagetest;classTarget{publicStringname="hello";}如果可以直接修改和访问name这个变量,下列哪句话是正确的a)anyclassb)onlytheTargetclassc)anyclassinthetestpackaged)anyclassthatextendsTarget27)11.abstractclassVehicle{publicintspeed(){return0;}classCarextendsVehicle{publicintspeed(){return60;}classRaceCarextendsCar{publicintspeed(){return150;}...RaceCarracer=newRaceCar();Carcar=newRaceCar();Vehiclevehicle=newRaceCar();System.out.println(racer.speed()+","+car.speed()+","+vehicle.speed());运行结果是()a)0,0,0b)150,60,0c)Compilationfailsd)150,150,150e)Anexceptionisthrownatruntime28)5.classBuilding{}publicclassBarnextendsBuilding{publicstaticvoidmain(String[]args){Buildingbuild1=newBuilding();Barnbarn1=newBarn();Barnbarn2=(Barn)build1;Objectobj1=(Object)build1;Stringstr1=(String)build1;Buildingbuild2=(Building)barn1;}15.}运行结果是()a)Ifline10isremoved,thecompilationsucceeds.b)Ifline11isremoved,thecompilationsucceedsc)Ifline12isremoved,thecompilationsucceeds.d)Ifline13isremoved,thecompilationsucceeds.e)Morethanonelinemustberemovedforcompilationtosucceed.29)29.Given:classMoney{privateStringcountry="Canada";publicStringgetC(){returncountry;}}classYenextendsMoney{publicStringgetC(){returnsuper.country;}} publicclassEuroextendsMoney{publicStringgetC(intx){returnsuper.getC();}publicstaticvoidmain(String[]args){System.out.print(newYen().getC()+""+newEuro().getC());}33.}运行结果是()a)Canadab)nullCanadac)Canadanulld)Compilationfailsduetoanerroronline26e)Compilationfailsduetoanerroronline2930)13.importjava.io.*;classFoodimplementsSerializable{intgood=3;}classFruitextendsFood{intjuice=5;}publicclassBananaextendsFruit{intyellow=4;publicstaticvoidmain(String[]args){Bananab=newBanana();Bananab2=newBanana();b.serializeBanana(b);//assumecorrectserializationb2=b.deserializeBanana();//assumecorrectSystem.out.println("restore"+b2.yellow+b2.juice+b2.good);}//moreBananamethodsgohere}运行结果是()a)restore400b)restore403c)restore453d)Compilationfails.e)Anexceptionisthrownatruntime.31)11.doubleinput=314159.26;NumberFormatnf=NumberFormat.getInstance(Locale.ITALIAN);Stringb;//insertcodehere下列哪条语句可以设置变量b的值为314.159,26()a).b=nf.parse(input);b)b=nf.format(input);c)b=nf.equals(input);d)b=nf.parseObject(input);32)1.publicclassTestString1{publicstaticvoidmain(String[]args){Stringstr="420";str+=42;System.out.print(str);}7.}输出结果是()a)42b)420 c)462d)4204233)22.StringBuildersb1=newStringBuilder("123");Strings1="123";//insertcodehereSystem.out.println(sb1+""+s1);下列哪句代码放到程序的第24行,可以输出"123abc123abc"()a)sb1.append("abc");s1.append("abc");b)sb1.append("abc");s1.concat("abc");c)sb1.concat("abc");s1.append("abc");d)sb1.concat("abc");s1.concat("abc");e)sb1.append("abc");s1=s1.concat("abc");f)sb1.concat("abc");s1=s1.concat("abc");g)sb1.append("abc");s1=s1+s1.concat("abc");34)1.publicclassLineUp{publicstaticvoidmain(String[]args){doubled=12.345;//insertcodehere}}下列哪句代码放到程序的第4行,可以输出|12.345|?()a)System.out.printf("|%7d| ",d);b)System.out.printf("|%7f| ",d);c)System.out.printf("|%3.7d| ",d);d)System.out.printf("|%3.7f| ",d);e)System.out.printf("|%7.3d| ",d);f)System.out.printf("|%7.3f| ",d);35)11.publicclassTest{publicstaticvoidmain(String[]args){intx=5;booleanb1=true;booleanb2=false;if((x==4)&&!b2)System.out.print("1");System.out.print("2");if((b2=true)&&b1)System.out.print("3");}}程序的输出结果是()a)2b)3c)12d)23e)123f)Compilationfails.g)Anexceptionisthrownatruntime. 36)10.interfaceFoo{}classAlphaimplementsFoo{}classBetaextendsAlpha{}classDeltaextendsBeta{publicstaticvoidmain(String[]args){Betax=newBeta();//insertcodehere}18.}下列哪句代码放到第16行,可以导致一个java.lang.ClassCastException()a)Alphaa=x;b)Foof=(Delta)x;c)Foof=(Alpha)x;d)Betab=(Beta)(Alpha)x;37)22.publicvoidgo(){Stringo="";z:.for(intx=0;x<3;x++){for(inty=0;y<2;y++){if(x==1)break;if(x==2&&y==1)breakz;o=o+x+y;}}System.out.println(o);}当调用go方法时,输出结果是什么()a)00b)0001c)000120d)00012022138)11.staticvoidtest()throwsRuntimeException{try{System.out.print("test");thrownewRuntimeException();}catch(Exceptionex){System.out.print("exception");}}publicstaticvoidmain(String[]args){try{test();}catch(RuntimeExceptionex){System.out.print("runtime");}System.out.print("end");}程序运行结果是()a)testendb)Compilationfails.c)testruntimeendd)testexceptionende).AThrowableisthrownbymainatruntime 39)33.try{//somecodehere}catch(NullPointerExceptione1){System.out.print("a");}catch(Exceptione2){System.out.print("b");}finally{System.out.print("c");}如果程序的第34行会抛出一些异常,程序的运行结果是()a)ab)bc)cd)ace)abc40)31.//somecodeheretry{//somecodehere}catch(SomeExceptionse){//somecodehere}finally{//somecodehere}哪种情况下37行的代码会执行,请选择3个()a)Theinstancegetsgarbagecollected.b)Thecodeonline33throwsanexception.c)Thecodeonline35throwsanexception.d)Thecodeonline31throwsanexception.e)Thecodeonline33executessuccessfully.41)10.intx=0;inty=10;do{y--;++x;}while(x<5);System.out.print(x+","+y);程序运行结果是()a)5,6b)5,5c)6,5d)6,642)publicclassDrink{publicstaticvoidmain(String[]args){booleanassertsOn=true;assert(assertsOn):assertsOn=true;if(assertsOn){System.out.println("assertison");}} }程序运行结果是()a)nooutputb)nooutputassertisonc)assertisond)assertisonAnAssertionErroristhrown.43)11.Floatpi=newFloat(3.14f);if(pi>3){System.out.print("piisbiggerthan3.");}else{System.out.print("piisnotbiggerthan3.");}finally{System.out.println("Haveaniceday.");}程序运行结果是()a)Compilationfails.b)piisbiggerthan3c)Anexceptionoccursatruntime.d)piisbiggerthan3.Haveaniceday.e)piisnotbiggerthan3.Haveaniceday.44)1.publicclassBoxer1{Integeri;intx;publicBoxer1(inty){x=i+y;System.out.println(x);}publicstaticvoidmain(String[]args){newBoxer1(newInteger(4));}}运行结果是()a)Thevalue"4"isprintedatthecommandline.b)Compilationfailsbecauseofanerrorinline5.c)ANullPointerExceptionoccursatruntime.d)ANumberFormatExceptionoccursatruntime.45)1.publicclassPerson{privateStringname;publicPerson(Stringname){this.name=name;}publicbooleanequals(Personp){returnp.name.equals(this.name);6.}7.}下列哪条语句是正确的()a)TheequalsmethoddoesNOTproperlyoverridetheObject.equalsmethod.b)Compilationfailsbecausetheprivateattributep.namecannotbeaccessedinline5.c)Toworkcorrectlywithhash-baseddatastructures,thisclassmustalsoimplementthehashCodemethod.d)WhenaddingPersonobjectstoajava.util.Setcollection,theequalsmethodinline4willpreventduplicates.46)1.publicclassScoreimplementsComparable{privateintwins,losses;publicScore(intw,intl){wins=w;losses=l;} publicintgetWins(){returnwins;}publicintgetLosses(){returnlosses;}publicStringtoString(){return"<"+wins+","+losses+">";}//insertcodehere}下列哪句代码放到第9行,程序可以正确编译()a)publicintcompareTo(Objecto){/*morecodehere*/}b)publicintcompareTo(Scoreother){/*morecodehere*/}c)publicintcompare(Scores1,Scores2){/*morecodehere*/}d)publicintcompare(Objecto1,Objecto2){/*morecodehere*/}47)3.publicclassBatman{intsquares=81;publicstaticvoidmain(String[]args){newBatman().go();}voidgo(){incr(++squares);System.out.println(squares);}voidincr(intsquares){squares+=10;}}程序运行结果是()a)81b)82c)91d)9248)15.publicclassYippee{publicstaticvoidmain(String[]args){for(intx=1;x0)elements[0]:null;程序运行结果是()a)Compilationfails.b)Anexceptionisthrownatruntime.c)Thevariablefirstissettonull.d)Thevariablefirstissettoelements[0].52)31.classFoo{publicinta=3;publicvoidaddFive(){a+=5;System.out.print("f");}}classBarextendsFoo{publicinta=8;publicvoidaddFive(){this.a+=5;System.out.print("b");}}主方法执行下列语句Foof=newBar();f.addFive();System.out.println(f.a);程序运行结果是()a)b,3b)b,8c)b,13d)f,3e)f,8f)f,13g)Compilationfails.h)Anexceptionisthrownatruntime.53)1.classClassA{ publicintnumberOfInstances;protectedClassA(intnumberOfInstances){this.numberOfInstances=numberOfInstances;}}publicclassExtendedAextendsClassA{privateExtendedA(intnumberOfInstances){uper(numberOfInstances);}publicstaticvoidmain(String[]args){ExtendedAext=newExtendedA(420);System.out.print(ext.numberOfInstances);}}下列哪句描述是正确的()a)420istheoutput.b)Anexceptionisthrownatruntime.c)Allconstructorsmustbedeclaredpublicd)ConstructorsCANNOTusetheprivatemodifier.e)ConstructorsCANNOTusetheprotectedmodifier.54)11.classClassA{}classClassBextendsClassA{}classClassCextendsClassA{}and:ClassAp0=newClassA();ClassBp1=newClassB();ClassCp2=newClassC();ClassAp3=newClassB();ClassAp4=newClassC();下边哪句代码是正确的,请选择3个()a)p0=p1;b)p1=p2;c)p2=p4;d)p2=(ClassC)p1;e)p1=(ClassB)p3;f)p2=(ClassC)p4;55)5.classThingy{Meterm=newMeter();}classComponent{voidgo(){System.out.print("c");}}classMeterextendsComponent{voidgo(){System.out.print("m");}}9.classDeluxeThingyextendsThingy{publicstaticvoidmain(String[]args){DeluxeThingydt=newDeluxeThingy();dt.m.go();Thingyt=newDeluxeThingy();t.m.go();}}下边哪句描述是正确的,请选择2个()a)Theoutputismm. b)Theoutputismc.c)Componentis-aMeter.d)Componenthas-aMeter.e)DeluxeThingyis-aComponent.f)DeluxeThingyhas-aComponent.56)10.interfaceJumper{publicvoidjump();}...classAnimal{}...classDogextendsAnimal{Tailtail;}...classBeagleextendsDogimplementsJumper{publicvoidjump(){}}...classCatimplementsJumper{publicvoidjump(){}}下边哪句描述是正确的,请选择3个()a)Catis-aAnimalb)Catis-aJumperc)Dogis-aAnimald)Dogis-aJumpere)Cathas-aAnimalf)Beaglehas-aTailg)Beaglehas-aJumper57)1.importjava.util.*;publicclassWrappedString{privateStrings;publicWrappedString(Strings){this.s=s;}publicstaticvoidmain(String[]args){HashSeths=newHashSet();WrappedStringws1=newWrappedString("aardvark");WrappedStringws2=newWrappedString("aardvark");Strings1=newString("aardvark");Strings2=newString("aardvark");hs.add(ws1);hs.add(ws2);hs.add(s1);hs.add(s2);System.out.println(hs.size());}}运行结果是()a)0b)1c)2d)3e)4f)Compilationfails.d)Anexceptionisthrownatruntime.58)2.importjava.util.*;publicclassGetInLine{publicstaticvoidmain(String[]args){PriorityQueuepq=newPriorityQueue();pq.add("banana");pq.add("pear");pq.add("apple"); System.out.println(pq.poll()+""+pq.peek());}}运行结果是()a)applepearb)bananapearc)appleappled)applebanana59)3.importjava.util.*;publicclassMapit{publicstaticvoidmain(String[]args){Setset=newHashSet();Integeri1=45;Integeri2=46;set.add(i1);set.add(i1);set.add(i2);System.out.print(set.size()+"");set.remove(i1);System.out.print(set.size()+"");i2=47;set.remove(i2);System.out.print(set.size()+"");}16.}程序运行结果是()a)210b)211c)321d)32260)12.importjava.util.*;publicclassExplorer1{publicstaticvoidmain(String[]args){TreeSets=newTreeSet();TreeSetsubs=newTreeSet();for(inti=606;i<613;i++)if(i%2==0)s.add(i);subs=(TreeSet)s.subSet(608,true,611,true);.s.add(609);System.out.println(s+""+subs);}23.}运行结果是()a)Compilationfails.b)Anexceptionisthrownatruntime.c)[608,609,610,612][608,610]d)[608,609,610,612][608,609,610]e)[606,608,609,610,612][608,610]f)[606,608,609,610,612][608,609,610]61)3.importjava.util.*;publicclassQuest{publicstaticvoidmain(String[]args){String[]colors={"blue","red","green","yellow","orange"};Arrays.sort(colors);ints2=Arrays.binarySearch(colors,"orange");ints3=Arrays.binarySearch(colors,"violet");System.out.println(s2+""+s3);}12.}运行结果是()a)2-1 b)2-4c)2-5d)3-1e)3-4f)3-5g)Compilationfails.h)Anexceptionisthrownatruntime62)34.HashMapprops=newHashMap();props.put("key45","somevalue");props.put("key12","someothervalue");props.put("key39","yetanothervalue");.Sets=props.keySet();//insertcodehere下列哪行代码放到39行是正确的()a)Arrays.sort(s);b)s=newTreeSet(s);c)Collections.sort(s);d)s=newSortedSet(s);63)1.publicclassTestOneimplementsRunnable{publicstaticvoidmain(String[]args)throwsException{Threadt=newThread(newTestOne());t.start();System.out.print("Started");t.join();System.out.print("Complete");}publicvoidrun(){for(inti=0;i<4;i++){System.out.print(i);}13.}14.}语系那个结果是()a)Compilationfails.b)Anexceptionisthrownatruntime.c)Thecodeexecutesandprints"StartedComplete".d)Thecodeexecutesandprints"StartedComplete0123"e)Thecodeexecutesandprints"Started0123Complete".64)下边哪行代码是正确的,请选择3个()a)privatesynchronizedObjecto;b)voidgo(){synchronized(){/*codehere*/}c)publicsynchronizedvoidgo(){/*codehere*/}d)privatesynchronized(this)voidgo(){/*codehere*/}e)voidgo(){synchronized(Object.class){/*codehere*/}f)voidgo(){Objecto=newObject();synchronized(o){/*codehere*/}65)1.publicclassTestFive{privateintx;publicvoidfoo(){ intcurrent=x;.x=current+1;}publicvoidgo(){for(inti=0;i<5;i++){newThread(){publicvoidrun(){foo();System.out.print(x+",");}}.start();}}程序如何修改,可以保证输出1,2,3,4,5,选择2个()a)movetheline12printstatementintothefoo()methodb)changeline7topublicsynchronizedvoidgo(){c)changethevariabledeclarationonline2toprivatevolatileintx;d)wrapthecodeinsidethefoo()methodwithasynchronized(this)blocke)wraptheforloopcodeinsidethego()methodwithasynchronizedblocksynchronized(this){//forloopcodehere}66)11.Runnabler=newRunnable(){publicvoidrun(){System.out.print("Cat");}};Threadt=newThread(r){publicvoidrun(){System.out.print("Dog");}};t.start();程序运行结果是()a)Catb)Dogc)Compilationfails.d)Thecoderunswithnooutput.67)1.publicclassThreads5{publicstaticvoidmain(String[]args){newThread(newRunnable(){publicvoidrun(){System.out.print("bar");}}).start();}8.}程序运行结果是()a)Compilationfails.b)Anexceptionisthrownatruntime.c)Thecodeexecutesnormallyandprints"bar".d)Thecodeexecutesnormally,butnothingprints.68)10.classOne{voidfoo(){}.}classTwoextendsOne{//insertmethodhere}下列哪个方法放到第14行,程序可以编译正常,请选择3个()a)ntfoo(){/*morecodehere*/}b)voidfoo(){/*morecodehere*/}c)publicvoidfoo(){/*morecodehere*/} d)privatevoidfoo(){/*morecodehere*/}e)protectedvoidfoo(){/*morecodehere*/}69)10.abstractpublicclassEmployee{protectedabstractdoublegetSalesAmount();publicdoublegetCommision(){returngetSalesAmount()*0.15;}15.}classSalesextendsEmployee{//insertmethodhere}下列哪个方法放到第17行,程序可以编译正常,请选择2个()a)doublegetSalesAmount(){return1230.45;}b)publicdoublegetSalesAmount(){return1230.45;}c)privatedoublegetSalesAmount(){return1230.45;}d)protecteddoublegetSalesAmount(){return1230.45;}70)1.classX{X(){System.out.print(1);}X(intx){this();System.out.print(2);}6.}publicclassYextendsX{Y(){super(6);System.out.print(3);}Y(inty){this();System.out.println(4);11.}.publicstaticvoidmain(String[]a){newY(5);}}程序运行结果是()a)13b)134c)1234d)2134e)2143f)432171)10.packagecom.sun.scjp;publicclassGeodetics{.publicstaticfinaldoubleDIAMETER=12756.32;//kilometers}哪两行代码可以正确的访问变量DIAMETER,选择2个()a)importcom.sun.scjp.Geodetics;publicclassTerraCarta{publicdoublehalfway(){returnGeodetics.DIAMETER/2.0;}b)importstaticcom.sun.scjp.Geodetics;publicclassTerraCarta{publicdoublehalfway(){returnDIAMETER/2.0;}}c)importstaticcom.sun.scjp.Geodetics.*;publicclassTerraCarta{publicdoublehalfway(){returnDIAMETER/2.0;}}d)packagecom.sun.scjp;publicclassTerraCarta{publicdoublehalfway(){returnDIAMETER/2.0;}}72)1.publicclassA{publicvoiddoit(){}publicStringdoit(){return"a";}publicdoubledoit(intx){ return1.0;}10.}运行结果是()a)Anexceptionisthrownatruntime.b)Compilationfailsbecauseofanerrorinline7.c)Compilationfailsbecauseofanerrorinline4.d)CompilationsucceedsandnoruntimeerrorswithclassAoccur.73)35.String#name="JaneDoe";int$age=24;Double_height=123.5;double~temp=37.5;哪行代码是正确的,选择2个()a)35b)36c)37d)3874)10.interfaceFoo{intbar();}publicclassSprite{publicintfubar(Foofoo){returnfoo.bar();}publicvoidtestFoo(){fubar(//insertcodehere);}16.}下边哪行代码是正确的()a)Foo{publicintbar(){return1;}b)newFoo{publicintbar(){return1;}c)newFoo(){publicintbar(){return1;}d)newclassFoo{publicintbar(){return1;}75)11.publicenumTitle{MR("Mr."),MRS("Mrs."),MS("Ms.");privatefinalStringtitle;privateTitle(Stringt){title=t;}publicStringformat(Stringlast,Stringfirst){returntitle+""+first+""+last;17.}18.}publicstaticvoidmain(String[]args){System.out.println(Title.MR.format("Doe","John"));21.}运行结果是()a)Mr.JohnDoeb)Anexceptionisthrownatruntime.c)Compilationfailsbecauseofanerrorinline12d)Compilationfailsbecauseofanerrorinline15.76)10.classLine{publicstaticclassPoint{}}classTriangle{//insertcodehere}要创建一个point的对象,下面那句是正确的()a)Pointp=newPoint(); b)Line.Pointp=newLine.Point();c)ThePointclasscannotbeinstatiatedatline15.d)Linel=newLine();l.Pointp=newl.Point();77)接口里的变量默认是什么类型的,选择3个()a)finalb)staticc)privated)publice)protectedf)native78)1.packageutil;publicclassBitUtils{publicstaticvoidprocess(byte[]b){/*morecodehere*/}}packageapp;.publicclassSomeApp{publicstaticvoidmain(String[]args){byte[]bytes=newbyte[256];//insertcodehere}7.}在第五行调用process方法,下边哪句代码是正确的()a)process(bytes);b)BitUtils.process(bytes);c)util.BitUtils.process(bytes);d)importutil.BitUtils.*;process(bytes);79)classInner{privateintx;publicvoidsetX(intx){this.x=x;}publicintgetX(){returnx;}}classOuter{privateInnery;publicvoidsetY(Innery){this.y=y;}publicInnergetY(){returny;}}publicclassGamma{publicstaticvoidmain(String[]args){Outero=newOuter();Inneri=newInner();intn=10; i.setX(n);o.setY(i);//insertcodehereSystem.out.println(o.getY().getX());}}下边哪行代码放到注释的地方,可以保证程序输出结果为100,选择3个()a)n=100;b)i.setX(100);c)o.getY().setX(100);d)i=newInner();i.setX(100);e)o.setY(i);i=newInner();i.setX(100);f)i=newInner();i.setX(100);o.setY(i);80)11.classSnoochy{Boochybooch;publicSnoochy(){booch=newBoochy(this);}}classBoochy{Snoochysnooch;publicBoochy(Snoochys){snooch=s;}}Andthestatements:publicstaticvoidmain(String[]args){Snoochysnoog=newSnoochy();snoog=null;.//morecodehere}23行执行完之后,下边哪句话是正确的()a)Noneoftheseobjectsareeligibleforgarbagecollection.b)Onlytheobjectreferencedbyboochiseligibleforgarbagecollection.c)Onlytheobjectreferencedbysnoochiseligibleforgarbagecollection.d)Theobjectsreferencedbysnoochandboochareeligibleforgarbagecollection.81)5.classPayload{privateintweight;publicPayload(intw){weight=w;}publicvoidsetWeight(intw){weight=w;}publicStringtoString(){returnInteger.toString(weight);}}publicclassTestPayload{staticvoidchangePayload(Payloadp){/*insertcode*/}publicstaticvoidmain(String[]args){Payloadp=newPayload(200);p.setWeight(1024);changePayload(p);System.out.println("pis"+p);}}下边那句代码插入到第12行,可以保证程序输出结果是420()a)p.setWeight(420);b)p.changePayload(420); c)p=newPayload(420);d)Payload.setWeight(420);82)11.publicstaticvoidtest(Stringstr){intcheck=4;if(check=str.length()){System.out.print(str.charAt(check-=1)+",");}else{System.out.print(str.charAt(0)+",");}18.}andtheinvocation:test("four");test("tee");test("to");运行结果是什么()a)r,t,t,b)r,e,o,c)Compilationfails.d)Anexceptionisthrownatruntime.83)1.packageutil;publicclassBitUtils{privatestaticvoidprocess(byte[]b){}}packageapp;publicclassSomeApp{publicstaticvoidmain(String[]args){byte[]bytes=newbyte[256];//insertcodehere}7.}在第五行正确调用process方法的代码是()a)process(bytes);b)BitUtils.process(bytes);c)util.BitUtils.process(bytes);d)SomeAppcannotusetheprocessmethodinBitUtils.e)importutil.BitUtils.*;process(bytes);f)app.BitUtils.process(bytes);84)15.publicclassPass2{publicvoidmain(String[]args){intx=6;Pass2p=newPass2();p.doStuff(x);System.out.print("mainx="+x);}voiddoStuff(intx){System.out.print("doStuffx="+x++);}}在控制台依次输入命令javacPass2.javajavaPass25运行结果是()a)Compilationfails.b)Anexceptionisthrownatruntime. c)doStuffx=6mainx=6d)doStuffx=6mainx=7e)doStuffx=7mainx=6f)doStuffx=7mainx=785)12.publicclassTest{publicenumDogs{collie,harrier};publicstaticvoidmain(String[]args){DogsmyDog=Dogs.collie;switch(myDog){casecollie:System.out.print("collie");caseharrier:System.out.print("harrier");}22.}23.}运行结果是()a)collieb)harrierc)Compilationfailsd)collieharriere)Anexceptionisthrownatruntime.86)1.publicclassDonkey{publicstaticvoidmain(String[]args){booleanassertsOn=false;assert(assertsOn):assertsOn=true;if(assertsOn){System.out.println("assertison");7}8.}9.}运行结果是()a)nooutputb)nooutputassertisonc)assertisond)nooutputAnAssertionErroristhrown.e)assertisonAnAssertionErroristhrown.87)11.staticvoidtest(){try{Stringx=null;System.out.print(x.toString()+"");}finally{System.out.print("finally");}}publicstaticvoidmain(String[]args){try{test();}.catch(Exceptionex){System.out.print("exception");}}运行结果是()a)nullb)finallyc)Nullfinally d)Compilationfails.e)finallyexception88)11.staticvoidtest()throwsError{if(true)thrownewAssertionError();System.out.print("test");}publicstaticvoidmain(String[]args){try{test();}catch(Exceptionex){System.out.print("exception");}.System.out.print("end");}运行结果是()a)endb)Compilationfails.c)exceptiontestendd)exceptionende)AThrowableisthrownbymain.f)AnExceptionisthrownbymain89)1.classTestExceptionextendsException{}classA{publicStringsayHello(Stringname)throwsTestException{if(name==null)thrownewTestException();return"Hello"+name;}7.}publicclassTestA{publicstaticvoidmain(String[]args){newA().sayHello("Aiko");}12.}运行结果是()a)Compilationsucceeds.b)ClassAdoesnotcompile.c)Themethoddeclaredonline9cannotbemodifiedtothrowTestException.d)TestAcompilesifline10isenclosedinatry/catchblockthatcatchesTestException.90)11.publicstaticCollectionget(){Collectionsorted=newLinkedList();sorted.add("B");sorted.add("C");sorted.add("A");returnsorted;}16.publicstaticvoidmain(String[]args){for(Objectobj:get()){System.out.print(obj+",");}20.}运行结果是()a)A,B,C,b)B,C,A,c)Compilationfails.d)Thecoderunswithnooutput.e)Anexceptionisthrownatruntime.91)11.staticclassA{ .voidprocess()throwsException{thrownewException();}}.staticclassBextendsA{voidprocess(){System.out.println("B");}}publicstaticvoidmain(String[]args){newB().process();19.}运行结果是()a)Bb)Thecoderunswithnooutput.c)Compilationfailsbecauseofanerrorinline12.d)Compilationfailsbecauseofanerrorinline15.92)10.publicclassFoo{staticint[]a;static{a[0]=2;}publicstaticvoidmain(String[]args){}}运行这段代码时会出现什么错误()a)java.lang.StackOverflowErrorb)java.lang.IllegalStateExceptionc)java.lang.ExceptionInInitializerErrord)java.lang.ArrayIndexOutOfBoundsException93)11.publicstaticvoidmain(String[]args){Integeri=newInteger(1)+newInteger(2);switch(i){case3:System.out.println("three");break;default:System.out.println("other");break;}17.}运行结果是()a)threeb)otherc)Anexceptionisthrownatruntime.d)Compilationfailsbecauseofanerroronline12.e)Compilationfailsbecauseofanerroronline13.f)Compilationfailsbecauseofanerroronline15.94)11.publicstaticIteratorreverse(Listlist){Collections.reverse(list);returnlist.iterator();}publicstaticvoidmain(String[]args){Listlist=newArrayList();list.add("1");list.add("2");list.add("3");for(Objectobj:reverse(list))System.out.print(obj+",");}运行结果是()a)3,2,1b)1,2,3c)Compilationfails. d)Thecoderunswithnooutput.95)1.publicclassTestString3{publicstaticvoidmain(String[]args){//insertcodehereSystem.out.println(s);}}下边哪两段代码放在第三行,可以保证程序输出4247()a)Strings="123456789";s=(s-"123").replace(1,3,"24")-"89";b)StringBuffers=newStringBuffer("123456789");s.delete(0,3).replace(1,3,"24").delete(4,6);c)StringBuffers=newStringBuffer("123456789");s.substring(3,6).delete(1,3).insert(1,"24");d)StringBuilders=newStringBuilder("123456789");s.substring(3,6).delete(1,2).insert(1,"24");e)StringBuilders=newStringBuilder("123456789");s.delete(0,3).delete(1,3).delete(2,5).insert(1,"24");96)5.importjava.util.Date;importjava.text.DateFormat;DateFormatdf;Datedate=newDate();//insertcodehereStrings=df.format(date);哪段代码放到23行,程序可以正确编译()a)df=newDateFormat();b)df=Date.getFormat();c)df=date.getFormat();d)df=DateFormat.getFormat();e)df=DateFormat.getInstance();97)1.publicclassBuildStuff{publicstaticvoidmain(String[]args){Booleantest=newBoolean(true);Integerx=343;Integery=newBuildStuff().go(test,x);System.out.println(y);}intgo(Booleanb,inti){if(b)return(i/7);return(i/49);}12.}运行结果是()a)7b)49 c)343d)Compilationfails.98)12.importjava.io.*;publicclassForestimplementsSerializable{privateTreetree=newTree();publicstaticvoidmain(String[]args){Forestf=newForest();try{FileOutputStreamfs=newFileOutputStream("Forest.ser");ObjectOutputStreamos=newObjectOutputStream(fs);os.writeObject(f);os.close();}catch(Exceptionex){ex.printStackTrace();}}}classTree{}运行结果是()a)Compilationfails.b)Anexceptionisthrownatruntime.c)AninstanceofForestisserialized.d)AninstanceofForestandaninstanceofTreearebothserialized.99)5.importjava.io.*;publicclassTalk{publicstaticvoidmain(String[]args){Consolec=newConsole();Stringpw;System.out.print("password:");pw=c.readLine();System.out.println("got"+pw);}14.}运行结果是()a)password:gotb)password:gotaikoc)password:aikogotaikod)Anexceptionisthrownatruntime.e)Compilationfailsduetoanerroronline8.100)11.Stringtest="TestA.TestB.TestC.";//insertcodehereString[]result=test.split(regex);下列哪行代码放到第12行,可以正确编译()a)Stringregex="";b)Stringregex="";c)Stringregex=".*";d)Stringregex="\s";e)Stringregex="\.\s*";f)Stringregex="\w[.]+";101)1.interfaceA{publicvoidaMethod();}interfaceB{publicvoidbMethod();}interfaceCextendsA,B{publicvoidcMethod();} classDimplementsB{publicvoidbMethod(){}}classEextendsDimplementsC{publicvoidaMethod(){}publicvoidbMethod(){}publicvoidcMethod(){}11.}下列那句话是正确的()a)Compilationfailsbecauseofanerrorinline3.b)Compilationfailsbecauseofanerrorinline7.c)Compilationfailsbecauseofanerrorinline9.d)IfyoudefineDe=newE(),thene.bMethod()invokestheversionofbMethod()definedinLine5.e).IfyoudefineDe=(D)(newE()),thene.bMethod()invokestheversionofbMethod()definedinLine5.f)IfyoudefineDe=(D)(newE()),thene.bMethod()invokestheversionofbMethod()definedinLine9.102)publicclassSimpleCalc{publicintvalue;publicvoidcalculate(){value+=7;}}andpublicclassMultiCalcextendsSimpleCale{publicvoidcalculate(){value-=3;}publicvoidcalculate(intmultiplier){calculate();super.calculate();value*=multiplier;}publicstaticvoidmain(String[]args){MultiCalccalculator=newMultiCalc();calculator.calculate(2);System.out.println("Valueis:"+calculator.value);}}运行结果是()a)Valueis:8b)Compilationfails.c)Valueis:12d)Valueis:-12e)Thecoderunswithnooutput.f)Anexceptionisthrownatruntime.103)1.publicclassBase{publicstaticfinalStringFOO="foo";publicstaticvoidmain(String[]args){Baseb=newBase(); Subs=newSub();System.out.print(Base.FOO);System.out.print(Sub.FOO);System.out.print(b.FOO);System.out.print(s.FOO);System.out.print(((Base)s).FOO);}}classSubextendsBase{publicstaticfinalStringFOO="bar";}运行结果是()a)foofoofoofoofoob)foobarfoobarbarc)foobarfoofoofood)foobarfoobarfooe)barbarbarbarbarf)foofoofoobarbarg)foofoofoobarfoo104)11.classMammal{}.classRaccoonextendsMammal{Mammalm=newMammal();}classBabyRaccoonextendsMammal{}下列哪句说法是正确的,选择4个()a)Raccoonis-aMammal.b)Raccoonhas-aMammal.c)BabyRaccoonis-aMammal.d)BabyRaccoonis-aRaccoon.e)BabyRaccoonhas-aMammal.f)BabyRaccoonis-aBabyRaccoon.105)10.interfaceA{voidx();}classBimplementsA{publicvoidx(){}publicvoidy(){}}classCextendsB{publicvoidx(){}}And:java.util.Listlist=newjava.util.ArrayList();list.add(newB());list.add(newC());for(Aa:list){a.x();a.y();}运行结果是()a)Thecoderunswithnooutput.b)Anexceptionisthrownatruntime.c)Compilationfailsbecauseofanerrorinline20.d)Compilationfailsbecauseofanerrorinline21.e)Compilationfailsbecauseofanerrorinline23.f)Compilationfailsbecauseofanerrorinline25.106)2.publicclassHi{voidm1(){}protectedvoid()m2{} }6.classLoisextendsHi{//insertcodehere}下列哪句代码放到第7行,可以正确编译,选4个()a)publicvoidm1(){}b)protectedvoidm1(){}c)privatevoidm1(){}d)voidm2(){}e)publicvoidm2(){}f)protectedvoidm2(){}g)privatevoidm2(){}107)10:publicclassHello{Stringtitle;intvalue;publicHello(){title+="World";}publicHello(intvalue){this.value=value;title="Hello";Hello();}21:}and:Helloc=newHello(5);System.out.println(c.title);运行结果是()a)Hellob)HelloWorldc)Compilationfails.d)Thecoderunswithnooutput108)10.interfaceData{publicvoidload();}abstractclassInfo{publicabstractvoidload();}下列哪段代码是正确的()a)publicclassEmployeeextendsInfoimplementsData{publicvoidload(){/*dosomething*/}}b)publicclassEmployeeimplementsInfoextendsData{publicvoidload(){/*dosomething*/}}c)publicclassEmployeeextendsInfoimplementsDatapublicvoidload(){/*dosomething*/}publicvoidInfo.load(){/*dosomething*/}}d)publicclassEmployeeimplementsInfoextendsData{publicvoidData.load(){/*dosomething*/}publicvoidload(){/*dosomething*/}}109)1.classAlligator{publicstaticvoidmain(String[]args){int[]x[]={{1,2},{3,4,5},{6,7,8,9}};int[][]y=x;System.out.println(y[2][1]);6.}7.}运行结果是()a)2b)3 c)4d)6e)7f)Compilationfails110)21.abstractclassC1{publicC1(){System.out.print(1);}}classC2extendsC1{publicC2(){System.out.print(2);}26.}classC3extendsC2{publicC3(){System.out.println(3);}29.}publicclassCtest{publicstaticvoidmain(String[]a){newC3();}32.}运行结果是()a)3b)23c)32d)123e)321f)Compilationfails.111)10.classOne{publicOnefoo(){returnthis;}12.}classTwoextendsOne{publicOnefoo(){returnthis;}15.}classThreeextendsTwo{//insertmethodhere18.}哪2行代码放到第17行,程序可以正确编译()a)publicvoidfoo(){}b)publicintfoo(){return3;}c)publicTwofoo(){returnthis;}d)publicOnefoo(){returnthis;}e)publicObjectfoo(){returnthis;}112)下边哪两个类正确实现了java.lang.Runnable和java.lang.Cloneable接口()a)publicclassSessionimplementsRunnable,Cloneable{publicvoidrun();publicObjectclone();}b)publicclassSessionextendsRunnable,Cloneable{publicvoidrun(){/*dosomething*/}publicObjectclone(){/*makeacopy*/}c)publicclassSessionimplementsRunnable,Cloneable{publicvoidrun(){/*dosomething*/}publicObjectclone(){/*makeacopy*/}d)publicabstractclassSessionimplementsRunnable,Cloneable{publicvoidrun(){/*dosomething*/}publicObjectclone(){/*makeacopy*/}e)publicclassSessionimplementsRunnable,implementsCloneable{publicvoidrun(){/*dosomething*/}publicObjectclone(){/*makeacopy*/}113)11.publicinterfaceA{publicvoidm1();}12. classBimplementsA{}classCimplementsA{publicvoidm1(){}}classDimplementsA{publicvoidm1(intx){}}abstractclassEimplementsA{}abstractclassFimplementsA{publicvoidm1(){}}abstractclassGimplementsA{publicvoidm1(intx){}}下列哪句描述是正确的()a)Compilationsucceeds.b)ExactlyoneclassdoesNOTcompile.c)ExactlytwoclassesdoNOTcompile.d)ExactlyfourclassesdoNOTcompile.114)10.classLine{publicclassPoint{publicintx,y;}publicPointgetPoint(){returnnewPoint();}13.}classTriangle{publicTriangle(){//insertcodehere17.}18.}下列哪句代码放到16行是正确的()a)Pointp=Line.getPoint();b)Line.Pointp=Line.getPoint();c)Pointp=(newLine()).getPoint();d)Line.Pointp=(newLine()).getPoint();115)1.classTestA{publicvoidstart(){System.out.println("TestA");}3.}publicclassTestBextendsTestA{publicvoidstart(){System.out.println("TestB");}publicstaticvoidmain(String[]args){((TestA)newTestB()).start();8.}9.}运行结果是()a)TestAb)TestBc)Compilationfailsd)Anexceptionisthrownatruntime116)publicinterfaceA{publicoiddoSomething(Stringthing);}publicclassAImplimplementsA{publicvoiddoSomething(Stringthing){}}publicclassB{publicAdoit(){//morecodehere}publicStringexecute(){//morecodehere}} pulblicclassCextendsB{publicAImpldoit(){//morecodehere}publicObjectexecute(){//morecodehere}}运行结果是()a)Compilationwillsucceedforallclassesandinterfaces.b)CompilationofclassCwillfailbecauseofanerrorinline2.c)CompilationofclassCwillfailbecauseofanerrorinline6.d)CompilationofclassAImplwillfailbecauseofanerrorinline2.117)11.publicstaticvoidmain(String[]args){Objectobj=newint[]{1,2,3};int[]someArray=(int[])obj;for(inti:someArray)System.out.print(i+"");}运行结果是()a)123b)Compilationfailsbecauseofanerrorinline12.c)Compilationfailsbecauseofanerrorinline13.d)Compilationfailsbecauseofanerrorinline14118)publicclassThreads1{intx=0;publicclassRunnerimplementsRunnable{publicvoidrun(){intcurrent=0;for(inti=0;i<4;i++){current=x;System.out.println(current+",");x=current+2;}}}publicstaticvoidmain(String[]args){newThreads1().go();}publicvoidgo(){Runnablerl=newRunner();newThread(rl).start();newThread(rl).start();}}运行结果是,选择2个()a)0,2,4,4,6,8,10,6,b)0,2,4,6,8,10,2,4,c)0,2,4,6,8,10,12,14,d)0,0,2,2,4,4,6,6,8,8,10,10,12,12,14,14,e)0,2,4,6,8,10,12,14,0,2,4,6,8,10,12,14,119)1.publicclassTestOneimplementsRunnable{ publicstaticvoidmain(String[]args)throwsException{Threadt=newThread(newTestOne());t.start();System.out.print("Started");t.join();System.out.print("Complete");8.}publicvoidrun(){for(inti=0;i<4;i++){System.out.print(i);12.}13.}14.}运行结果是()a)Compilationfails.b)Anexceptionisthrownatruntime.c)Thecodeexecutesandprints"StartedComplete".d)Thecodeexecutesandprints"StartedComplete0123".e)Thecodeexecutesandprints"Started0123Complete".120)publicclassStarterextendsThread{privateintx=2;publicstaticvoidmain(String[]args)throwsException{newStarter().makeItSo();}publicStarter(){x=5;start();}publicvoidmakeItSo()throwsException{join();x=x-1;System.out.println(x);}publicvoidrun(){x*=2;}}运行结果是()a)4b)5c)8d)9e)Compilationfails.f)Anexceptionisthrownatruntime.g)Itisimpossibletodetermineforcertain.121)11.publicclassPingPongimplementsRunnable{synchronizedvoidhit(longn){for(inti=1;i<3;i++)System.out.print(n+"-"+i+"");15.}publicstaticvoidmain(String[]args){newThread(newPingPong()).start();newThread(newPingPong()).start();19.}publicvoidrun(){ hit(Thread.currentThread().getId());22.}23.}下列哪种是可能的输出,选择2个()a)Theoutputcouldbe8-17-28-27-1b)Theoutputcouldbe7-17-28-16-1c)Theoutputcouldbe8-17-17-28-2d)Theoutputcouldbe8-18-27-17-2122)publicclassComputationextendsThread{privateintnum;privatebooleanisComplete;privateintresult;publicComputation(intnum){this.num=num;}publicsynchronizedvoidrun(){result=num*2;isComplete=true;notify();}publicsynchronizedintgetResult(){while(!isComplete){try{wait();}catch(InterruptedExceptione){}}returnresult;}publicstaticvoidmain(String[]args){Computation[]computations=newComputation[4];for(inti=0;i0);switch(x){case2:;default:assertfalse;16.}17.}privatevoidgo2(intx){assert(x<0);}下列哪句描述是正确的()a)Alloftheassertstatementsareusedappropriately.b)Onlytheassertstatementonline12isusedappropriately.c)Onlytheassertstatementonline15isusedappropriately.d)Onlytheassertstatementonline18isusedappropriately.e)Onlytheassertstatementsonlines12and15areusedappropriately.f)Onlytheassertstatementsonlines12and18areusedappropriately.g)Onlytheassertstatementsonlines15and18areusedappropriately133)11.publicstaticvoidmain(String[]args){try{args=null;args[0]="test"; System.out.println(args[0]);}catch(Exceptionex){System.out.println("Exception");}catch(NullPointerExceptionnpe){System.out.println("NullPointerException");20.}21.}运行结果是()a)testb)Exceptionc)Compilationfails.d)NullPointerException134)11.publicstaticvoidmain(String[]args){for(inti=0;i<=10;i++){if(i>6)break;14.}System.out.println(i);16.}运行结果是()a)6b)Compilationfails.c)10d)11135)11.classX{publicvoidfoo(){System.out.print("X");}}12.publicclassSubBextendsX{publicvoidfoo()throwsRuntimeException{super.foo();if(true)thrownewRuntimeException();System.out.print("B");18.}publicstaticvoidmain(String[]args){newSubB().foo();21.}22.}运行结果是()a)X,followedbyanException.b)Nooutput,andanExceptionisthrown.c)Compilationfailsduetoanerroronline14.d)Compilationfailsduetoanerroronline16.e)Compilationfailsduetoanerroronline17.f)X,followedbyanException,followedbyB.136)11.publicvoidtestIfA(){if(testIfB("True")){System.out.println("True");}else{System.out.println("Nottrue");16.}17.}publicBooleantestIfB(Stringstr){returnBoolean.valueOf(str);20.}当testIfA方法被调用时结果是()a)Trueb)Nottruec)Anexceptionisthrownatruntime.d)Compilationfailsbecauseofanerroratline12.137)下边哪两行代码会导致StackOverflowError,选择2个()a)int[]x={1,2,3,4,5};for(inty=0;y<6;y++)System.out.println(x[y]);b)staticint[]x={7,6,5,4};static{x[1]=8;x[4]=3;} c)or(inty=10;y<10;y++)doStuff(y);d)voiddoOne(intx){doTwo(x);}voiddoTwo(inty){doThree(y);}voiddoThree(intz){doTwo(z);}e)for(intx=0;x<1000000000;x++)doStuff(x);f)voidcounter(inti){counter(++i);}138)5.publicclassTahiti{Tahitit;publicstaticvoidmain(String[]args){Tahitit=newTahiti();Tahitit2=t.go(t);.t2=null;//morecodehere12.}Tahitigo(Tahitit){Tahitit1=newTahiti();Tahitit2=newTahiti();t1.t=t2;t2.t=t1;t.t=t2;returnt1;17.}18.}程序执行完第11行后,有几个对象符合垃圾回收条件()a)0b)1c)2d)3e)Compilationfails.139)11.publicclassItemTest{.privatefinalintid;publicItemTest(intid){this.id=id;}publicvoidupdateId(intnewId){id=newId;}15.publicstaticvoidmain(String[]args){ItemTestfa=newItemTest(42);fa.updateId(69);System.out.println(fa.id);20.}21.}运行结果是()a)Compilationfails.b)Anexceptionisthrownatruntimec)TheattributeidintheItemTestobjectremainsunchanged.d)TheattributeidintheItemTestobjectismodifiedtothenewvalue.e)AnewItemTestobjectiscreatedwiththepreferredvalueintheidattribute.140)classFoo{privateintx;publicFoo(intx){this.x=x;}publicvoidsetX(intx){this.x=x;}publicintgetX(){returnx;}}publicclassGamma{staticFoofooBar(Foofoo){ foo=newFoo(100);returnfoo;}publicstaticvoidmain(String[]args){Foofoo=newFoo(300);System.out.print(foo.getX()+"-");FoofooFoo=fooBar(foo);System.out.print(foo.getX()+"-");System.out.print(fooFoo.getX()+"-");foo=fooBar(fooFoo);System.out.print(foo.getX()+"-");System.out.print(fooFoo.getX());}}运行结果是()a)300-100-100-100-100b)300-300-100-100-100c)300-300-300-100-100d)300-300-300-100-100-100-100300-300-100141)1.packagepackageA;publicclassMessage{StringgetText(){return"text";}}And:packagepackageB;publicclassXMLMessageextendspackageA.Message{StringgetText(){return"text";}publicstaticvoidmain(String[]args){System.out.println(newXMLMessage().getText());6.}7.}当运行类XMLMessage里的主方法时,结果是()a)textb)Compilationfails.c)textd)Anexceptionisthrownatruntime.142)3.interfaceFish{}classPerchimplementsFish{}classWalleyeextendsPerch{}classBluegill{}publicclassFisherman{publicstaticvoidmain(String[]args){Fishf=newWalleye();Walleyew=newWalleye();Bluegillb=newBluegill();if(finstanceofPerch)System.out.print("f-p");if(winstanceofFish)System.out.print("w-f");if(binstanceofFish)System.out.print("b-f");15.}16.}运行结果是()a)w-fb)f-pw-f c)w-fb-fd)f-pw-fb-fe)Compilationfails.143)1.interfaceDoStuff2{floatgetRange(intlow,inthigh);}3.interfaceDoMore{floatgetAvg(inta,intb,intc);}6.abstractclassDoAbstractimplementsDoStuff2,DoMore{}8.classDoStuffimplementsDoStuff2{publicfloatgetRange(intx,inty){return3.14f;}}11.interfaceDoAllextendsDoMore{floatgetAvg(inta,intb,intc,intd);}下边哪句描述是正确的()a)Thefilewillcompilewithouterror.b)Compilationfails.Onlyline7containsanerror.c)Compilationfails.Onlyline12containsanerror.d)Compilationfails.Onlyline13containsanerror.144)1.importjava.io.*;publicclassMaker{publicstaticvoidmain(String[]args){Filedir=newFile("dir");Filef=newFile(dir,"f");6.}7.}假设当前目录为空,用户对这个目录有读写的权限,上面代码的运行结果是()a)Compilationfails.b)Nothingisaddedtothefilesystem.c)Onlyanewfileiscreatedonthefilesystem.d)Onlyanewdirectoryiscreatedonthefilesysteme)Bothanewfileandanewdirectoryarecreatedonthefilesystem.145)12.NumberFormatnf=NumberFormat.getInstance();nf.setMaximumFractionDigits(4);nf.setMinimumFractionDigits(2);Stringa=nf.format(3.1415926);Stringb=nf.format(2);运行结果是,选择2个()a)Thevalueofbis2.b)Thevalueofais3.14c)Thevalueofbis2.00.d)Thevalueofais3.141e)Thevalueofais3.1415f)Thevalueofais3.1416.g)Thevalueofbis2.0000146)12.Stringcsv="Sue,5,true,3";Scannerscanner=newScanner(csv);scanner.useDelimiter(",");intage=scanner.nextInt();运行结果是()a)Compilationfails. b)Afterline15,thevalueofageis5c)Afterline15,thevalueofageis3.d)Anexceptionisthrownatruntime.147)C是java.io.Console的一个对象,下边那个方法可以从C中读取一行文本,选择2个()a)Strings=c.readLine();b)char[]c=c.readLine();c)Strings=c.readConsole();d)char[]c=c.readConsole();e)Strings=c.readLine("%s","name");f)char[]c=c.readLine("%s","name");148)11.Stringtest="a1b2c3";String[]tokens=test.split("\d");for(Strings:tokens)System.out.print(s+"");运行结果是()a)abcb)123c)a1b2c3d)a1b2c3149)33.Dated=newDate(0);Stringds="December15,2004";//insertcodeheretry{d=df.parse(ds);38.}catch(ParseExceptione){System.out.println("Unabletoparse"+ds);41.}//insertcodehere下列哪行代码可以创建一个DateFormat对象,并向Date对象里添加一天()a)35.DateFormatdf=DateFormat.getDateFormat();d.setTime((60*60*24)+d.getTime());b)35.DateFormatdf=DateFormat.getDateInstance();d.setTime((1000*60*60*24)+d.getTime());c)35.DateFormatdf=DateFormat.getDateFormat();d.setLocalTime((1000*60*60*24)+d.getLocalTime());d)35.DateFormatdf=DateFormat.getDateInstance();d.setLocalTime((60*60*24)+d.getLocalTime());150)1.publicclassKungFu{publicstaticvoidmain(String[]args){Integerx=400;Integery=x;x++;StringBuildersb1=newStringBuilder("123");StringBuildersb2=sb1;sb1.append("5");System.out.println((x==y)+""+(sb1==sb2));10.}11.}运行结果是()a)truetrue b)falsetruec)truefalsed)falsefalsee)Compilationfails.f)Anexceptionisthrownatruntime.151)11.classConverter{publicstaticvoidmain(String[]args){Integeri=args[0];intj=12;System.out.println("Itis"+(j==i)+"thatj==i.");16.}17.}当运行javaConverter12命令时,会有什么结果()a)Itistruethatj==ib)Itisfalsethatj==i.c)Anexceptionisthrownatruntime.d)Compilationfailsbecauseofanerrorinline13.152)10.classFoo{staticvoidalpha(){/*morecodehere*/}voidbeta(){/*morecodehere*/}}下边的哪句描述是正确的,选择2个()a)Foo.beta()isavalidinvocationofbeta().b)Foo.alpha()isavalidinvocationofalpha().c)Methodbeta()candirectlycallmethodalpha().d)Methodalpha()candirectlycallmethodbeta().153)publicclassA{publicStringdoit(intx,inty){return"a";}publicStringdoit(int...vals){return"b";}}在主方法里调用Aa=newA();System.out.println(a.doit(4,5));运行结果是()a)Line26prints"a"toSystem.out.b)Line26prints"b"toSystem.out.c)Anexceptionisthrownatline26atruntime.d)CompilationofclassAwillfailduetoanerrorinline6.154)下边哪句代码是正确的初始化了一个静态整型数组,选择2个()a)staticfinalint[]a={100,200};b)staticfinalint[]a;static{a=newint[2];a[0]=100;a[1]=200;}c)staticfinalint[]a=newint[2]{100,200};d)staticfinalint[]a;staticvoidinit(){a=newint[3];a[0]=100;a[1]=200;}155)1.publicclassPlant{privateStringname;publicPlant(Stringname){this.name=name;} publicStringgetName(){returnname;}5.}publicclassTreeextendsPlant{publicvoidgrowFruit(){}publicvoiddropLeaves(){}4.}下列哪句是正确的()a)Thecodewillcompilewithoutchangesb)ThecodewillcompileifpublicTree(){Plant();}isaddedtotheTreeclass.c)ThecodewillcompileifpublicPlant(){Tree();}isaddedtothePlantclassd)ThecodewillcompileifpublicPlant(){this("fern");}isaddedtothePlantclass.156)publicclassGoTest{publicstaticvoidmain(String[]args){Sentea=newSente();a.go();Gobanb=newGoban();b.go();Stonec=newStone();c.go();}}classSenteimplementsGo{publicvoidgo(){System.out.println("goinSente");}}classGobanextendsSente{publicvoidgo(){System.out.println("goinGoban");}}classStoneextendsGobanimplementsGo{}interfaceGo{publicvoidgo();}运行结果是()a)goinGobangoinSentegoinSenteb)goinSentegoinSentegoinGobanc)goinSentegoinGobangoinGoband)goinGobangoinGobangoinSente157)哪两个类可以正确的实现java.lang.Runnable和java.lang.Cloneable接口选择2个()a)publicclassSessionimplementsRunnable,Cloneable{publicvoidrun();publicObjectclone();}b)publicclassSessionextendsRunnable,Cloneable{publicvoidrun(){/*dosomething*/}publicObjectclone(){/*makeacopy*/}c)publicclassSessionimplementsRunnable,Cloneable{publicvoidrun(){/*dosomething*/}publicObjectclone(){/*makeacopy*/}d)publicabstractclassSessionimplementsRunnable,Cloneable{publicvoidrun(){/*dosomething*/}publicObjectclone(){/*makeacopy*/}e)publicclassSessionimplementsRunnable,implementsCloneable{publicvoidrun(){/*dosomething*/}publicObjectclone(){/*makeacopy*/}158)11.classMud{12.//insertcodehereSystem.out.println("hi");14.}15.}Andthefollowingfivefragments:publicstaticvoidmain(String...a){publicstaticvoidmain(String.*a){publicstaticvoidmain(String...a){ publicstaticvoidmain(String[]...a){publicstaticvoidmain(String...[]a){上边有几个方法可以放到第12行,是程序正确编译,()a)0b)1c)2d)3e)4f)5159)11.publicinterfaceA111{Strings="yo";publicvoidmethod1();14.}interfaceB{}interfaceCextendsA111,B{publicvoidmethod1();publicvoidmethod1(intx);23.}运行结果是()a)Compilationsucceeds.b)Compilationfailsduetomultipleerrors.c)Compilationfailsduetoanerroronlyonline20.d)Compilationfailsduetoanerroronlyonline21.e)Compilationfailsduetoanerroronlyonline22160)interfaceFoo{intbar();}publicclassBeta{classAimplementsFoo{publicintbar(){return1;}}publicintfubar(Foofoo){returnfoo.bar();}publicvoidtestFoo(){classAimplementsFoo{publicintbar(){return2;}}System.out.println(fubar(newA()));}publicstaticvoidmain(String[]args){newBeta().testFoo();}}下边哪个结果是正确的,选择3个()a)Compilationfails.b)Thecodecompilesandtheoutputis2.c)Iflines16,17and18wereremoved,compilationwouldfail.d)Iflines24,25and26wereremoved,compilationwouldfail.e)Iflines16,17and18wereremoved,thecodewouldcompileandtheoutputwouldbe2.f)Iflines24,25and26wereremoved,thecodewouldcompileandtheoutputwouldbe1.161)11.classAlpha{publicvoidfoo(){System.out.print("Afoo");}13.}publicclassBetaextendsAlpha{publicvoidfoo(){System.out.print("Bfoo");}publicstaticvoidmain(String[]args){ Alphaa=newBeta();Betab=(Beta)a;a.foo();20.b.foo();21.}22.}运行结果是()a)AfooAfoob)AfooBfooc)BfooAfood)BfooBfooe)Compilationfails.f)Anexceptionisthrownatruntime.162)1.publicclassTestOne{publicstaticvoidmain(String[]args)throwsException{Thread.sleep(3000);System.out.println("sleep");5.}6.}运行结果是()a)Compilationfails.b)Anexceptionisthrownatruntime.c)Thecodeexecutesnormallyandprints"sleep"d)Thecodeexecutesnormally,butnothingisprinted.163)1.publicclassThreads4{publicstaticvoidmain(String[]args){newThreads4().go();4.}publicvoidgo(){Runnabler=newRunnable(){publicvoidrun(){System.out.print("foo");9.}10.};Threadt=newThread(r);t.start();13.t.start();14.}15.}运行结果是()a)Compilationfails.b)Anexceptionisthrownatruntimec)Thecodeexecutesnormallyandprints"foo"d)Thecodeexecutesnormally,butnothingisprinted164)1.publicclassThreads3implementsRunnable{publicvoidrun(){System.out.print("running");4.}publicstaticvoidmain(String[]args){Threadt=newThread(newThreads3());t.run();8.t.run();9.t.start();10.}11.}运行结果是()a)Compilationfails.b)Anexceptionisthrownatruntime.c)Thecodeexecutesandprints"running".d)Thecodeexecutesandprints"runningrunning"e)Thecodeexecutesandprints"runningrunningrunning"165)publicclassNamedCounter{privatefinalStringname;privateintcount;publicNamedCounter(Stringname){this.name=name;} publicStringgetName(){returnname;}publicvoidincrement(){count++;}publicintgetCount(){returncount;}publicvoidreset(){count=0;}哪些改变可以使这个类被多线程安全的访问,选择3个()a)declarereset()usingthesynchronizedkeywordb)declaregetName()usingthesynchronizedkeywordc)declaregetCount()usingthesynchronizedkeywordd)declaretheconstructorusingthesynchronizedkeyworde)declareincrement()usingthesynchronizedkeyword166)1.publicclassTestSevenextendsThread{privatestaticintx;publicsynchronizedvoiddoThings(){intcurrent=x;current++;x=current;7.}publicvoidrun(){doThings();10.}11.}下边哪句是正确的()a)Compilationfails.b)Anexceptionisthrownatruntime.c)Synchronizingtherun()methodwouldmaketheclassthread-safe.d)Thedatainvariable"x"areprotectedfromconcurrentaccessproblems.e)DeclaringthedoThings()methodasstaticwouldmaketheclassthread-safe.f)WrappingthestatementswithindoThings()inasynchronized(newObject()){}blockwouldmaketheclassthread-safe.167)11.publicclassYikes{12.publicstaticvoidgo(Longn){System.out.print("Long");}publicstaticvoidgo(Shortn){System.out.print("Short");}publicstaticvoidgo(intn){System.out.print("int");}publicstaticvoidmain(String[]args){shorty=6;longz=7;go(y);20.go(z);21.}22.}运行结果是()a)intLongb)ShortLongc)Compilationfails.d)Anexceptionisthrownatruntime.168)12.Datedate=newDate();df.setLocale(Locale.ITALY);Strings=df.format(date);df是一个DateFormat的对象,并且已经被实例化,当这段代码在December14,2000运行的时候,结果是什么()a)Thevalueofsis14-dic-2000.b)ThevalueofsisDec14,2000.c)Anexceptionisthrownatruntime. d)Compilationfailsbecauseofanerrorinline13169)当我们用StringBuilder对象替换StringBuffer时,哪两种情况是不安全的,选择2个()a)WhenusingversionsofJavatechnologyearlierthan5.0.b)WhensharingaStringBufferamongmultiplethreads.c)Whenusingthejava.ioclassStringBufferInputStream.d)WhenyouplantoreusetheStringBuffertobuildmorethanonestring.170)11.Stringtest="Thisisatest";String[]tokens=test.split("s");System.out.println(tokens.length);代码的运行结果是()a)0b)1c)4d)Compilationfails.e)Anexceptionisthrownatruntime.171)10.importjava.io.*;classAnimal{Animal(){System.out.print("a");}13.}classDogextendsAnimalimplementsSerializable{Dog(){System.out.print("d");}16.}publicclassBeagleextendsDog{}如果类Beagle的一个实例被创建,经过序列化和反序列化,程序结果是()a)adb)adac)addd)adad172)11.doubleinput=314159.26;NumberFormatnf=NumberFormat.getInstance(Locale.ITALIAN);Stringb;//insertcodehere哪句代码放到14行,可以保证程序输出结果为b=314.159,26()a)b=nf.parse(input);b)b=nf.format(input);c)b=nf.equals(input);d)b=nf.parseObject(input);173)11.classAnimal{publicStringnoise(){return"peep";}}.classDogextendsAnimal{publicStringnoise(){return"bark";}14.}classCatextendsAnimal{publicStringnoise(){return"meow";}17.}...Animalanimal=newDog();Catcat=(Cat)animal;System.out.println(cat.noise());运行结果是()a)peepb)barkc)meowd)Compilationfailse)Anexceptionisthrownatruntime.174)10.abstractclassA{abstractvoida1();voida2(){}13.}classBextendsA{voida1(){} voida2(){}17.}classCextendsB{voidc1(){}}and:Ax=newB();Cy=newC();Az=newC();下边代码哪些是正确的方法调用,选择4个()a)x.a2();b)z.a2();c)z.c1();d)z.a1();e)y.c1();f)x.a1();175)3.classEmployee{Stringname;doublebaseSalary;Employee(Stringname,doublebaseSalary){.this.name=name;this.baseSalary=baseSalary;8.}9.}publicclassSalesPersonextendsEmployee{doublecommission;publicSalesPerson(Stringname,doublebaseSalary,doublecommission){//insertcodehere14.}15.}哪些代码放到第13行,程序可以运行,选择2个()a)super(name,baseSalary);b)this.commission=commission;c)super();this.commission=commission;d)this.commission=commission;super();e)super(name,baseSalary);this.commission=commission;f)this.commission=commission;super(name,baseSalary);g)super(name,baseSalary,commission);176)11.publicclassPerson{privateStringname,comment;privateintage;publicPerson(Stringn,inta,Stringc){name=n;age=a;comment=c;16.}publicbooleanequals(Objecto){if(!(oinstanceofPerson))returnfalse;Personp=(Person)o;returnage==p.age&&name.equals(p.name);21.}22.}WhatistheappropriatedefinitionofthehashCodemethodinclassPerson?()a)returnsuper.hashCode();b)returnname.hashCode()+age*7;c)returnname.hashCode()+comment.hashCode()/2;d)returnname.hashCode()+comment.hashCode()/2-age*3;177)12.importjava.util.*;publicclassExplorer3{publicstaticvoidmain(String[]args){TreeSets=newTreeSet(); TreeSetsubs=newTreeSet();for(inti=606;i<613;i++)if(i%2==0)s.add(i);subs=(TreeSet)s.subSet(608,true,611,true);subs.add(629);21.System.out.println(s+""+subs);22.}23.}运行结果是()a)Compilationfails.b)Anexceptionisthrownatruntime.c)[608,610,612,629][608,610]d)[608,610,612,629][608,610,629]e)[606,608,610,612,629][608,610]f)[606,608,610,612,629][608,610,629]178)1.importjava.util.*;2.publicclassLetterASort{publicstaticvoidmain(String[]args){ArrayListstrings=newArrayList();strings.add("aAaA");strings.add("AaA");strings.add("aAa");strings.add("AAaa");Collections.sort(strings);for(Strings:strings){System.out.print(s+"");}12.}13.}运行结果是()a)Compilationfails.b)aAaAaAaAAaaAaAc)AAaaAaAaAaaAaAd)AaAAAaaaAaAaAae)aAaAaAaAaAAAaaf)Anexceptionisthrownatruntime.179)5.classA{voidfoo()throwsException{thrownewException();}7.}classSubB2extendsA{voidfoo(){System.out.println("B");}}classTester{publicstaticvoidmain(String[]args){Aa=newSubB2();a.foo();15.}16.}运行结果是()a)Bb)B,followedbyanException.c)Compilationfailsduetoanerroronline9.d)Compilationfailsduetoanerroronline14.e)AnExceptionisthrownwithnootheroutput.180)11.publicvoidsomeMethod(Objectvalue){//checkfornullvalue... System.out.println(value.getClass());21.}哪行代码放到12行,可以正确的处理一个null值()a)assertvalue==null;b)assertvalue!=null,"valueisnull";c)if(value==null){thrownewAssertionException("valueisnull");}d)if(value==null){thrownewIllegalArgumentException("valueisnull");}181)1.publicclassMule{publicstaticvoidmain(String[]args){booleanassert=true;if(assert){System.out.println("assertistrue");6.}7.}8.}下边哪个命令可以让程序正常编译()a)javacMule.javab)javac-source1.3Mule.javac)javac-source1.4Mule.javad)javac-source1.5Mule.java182)1.publicclassVenus{publicstaticvoidmain(String[]args){int[]x={1,2,3};inty[]={4,5,6};newVenus().go(x,y);}voidgo(int[]...z){for(int[]a:z)System.out.print(a[0]);}}运行结果是()a)1b)12c)14d)123e)Compilationfails.f)Anexceptionisthrownatruntime.183)11.publicclassTest{publicenumDogs{collie,harrier,shepherd};publicstaticvoidmain(String[]args){DogsmyDog=Dogs.shepherd;switch(myDog){casecollie:System.out.print("collie");casedefault:System.out.print("retriever");caseharrier:System.out.print("harrier");22.}23.}24.}运行结果是()a)harrierb)shepherdc)retrieverd)Compilationfails. e)retrieverharrierf)Anexceptionisthrownatruntime.184)11.staticvoidtest(){try{Stringx=null;System.out.print(x.toString()+"");15.}finally{System.out.print("finally");}17.}publicstaticvoidmain(String[]args){try{test();}catch(Exceptionex){System.out.print("exception");}21.}运行结果是()a)nullb)finallyc)nullfinallyd)Compilationfails.e)finallyexception185)1.publicclassBreaker2{staticStringo="";publicstaticvoidmain(String[]args){z:for(intx=2;x<7;x++){if(x==3)continue;if(x==5)breakz;o=o+x;9.}System.out.println(o);}12.}运行结果是()a)2b)24c)234d)246186)11.publicstaticvoidmain(String[]args){Stringstr="null";if(str==null){System.out.println("null");}else(str.length()==0){System.out.println("zero");}else{System.out.println("some");19.}20.}运行结果是()a)nullb)zeroc)somed)Compilationfailse)Anexceptionisthrownatruntime187)11.classA{publicvoidprocess(){System.out.print("A,");} classBextendsA{publicvoidprocess()throwsIOException{super.process();thrownewIOException();18.}publicstaticvoidmain(String[]args){try{newB().process();}catch(IOExceptione){System.out.println("Exception");}22.}运行结果是()a)Exceptionb)A,B,Exceptionc)Compilationfailsbecauseofanerrorinline20d)Compilationfailsbecauseofanerrorinline14e)ANullPointerExceptionisthrownatruntime.188)15.publicclassPass2{publicvoidmain(String[]args){intx=6;Pass2p=newPass2();p.doStuff(x);System.out.print("mainx="+x);21.}22.voiddoStuff(intx){System.out.print("doStuffx="+x++);25.}26.}在控制台依次输入命令javacPass2.javajavaPass25运行结果是()a)Compilationfails.b)Anexceptionisthrownatruntime.c)doStuffx=6mainx=6d)doStuffx=6mainx=7189)11.interfaceDeclareStuff{publicstaticfinalintEASY=3;voiddoStuff(intt);}publicclassTestDeclareimplementsDeclareStuff{publicstaticvoidmain(String[]args){intx=5;newTestDeclare().doStuff(++x);18.}voiddoStuff(ints){.s+=EASY+++s;System.out.println("s"+s);22.}23.}运行结果是()a)s14b)s16c)s10d)Compilationfails.190)1.interfaceDoStuff2{floatgetRange(intlow,inthigh);}3.interfaceDoMore{ floatgetAvg(inta,intb,intc);}6.abstractclassDoAbstractimplementsDoStuff2,DoMore{}8.classDoStuffimplementsDoStuff2{publicfloatgetRange(intx,inty){return3.14f;}}11.interfaceDoAllextendsDoMore{floatgetAvg(inta,intb,intc,intd);}运行结果是()a)Thefilewillcompilewithouterror.b)Compilationfails.Onlyline7containsanerror.c)Compilationfails.Onlyline12containsanerror.d)Compilationfails.Onlyline13containsanerror.e)Compilationfails.Onlylines7and12containerrors.191)3.publicclassSpock{publicstaticvoidmain(String[]args){Longtail=2000L;Longdistance=1999L;Longstory=1000L;if((tail>distance)^((story*2)==tail))System.out.print("1");if((distance+1!=tail)^((story*2)==distance))System.out.print("2");12.}13.}运行结果是()a)1b)2c)12d)Compilationfails.e)Nooutputisproduced.f)Anexceptionisthrownatruntime.192)5.classPayload{privateintweight;publicPayload(intw){weight=w;}publicvoidsetWeight(intw){weight=w;}publicStringtoString(){returnInteger.toString(weight);}}publicclassTestPayload{.staticvoidchangePayload(Payloadp){/*insertcode*/}publicstaticvoidmain(String[]args){Payloadp=newPayload(200);p.setWeight(1024);changePayload(p);System.out.println("pis"+p);}}下边哪行代码放到12行,可以保证输出420()a)p.setWeight(420);b)p.changePayload(420);c)p=newPayload(420);d)Payload.setWeight(420);e)p=Payload.setWeight(420); 第二部分:判断题1)类里的方法类型有实例方法、全局方法、局部方法还有内部方法2)已经定义了一个数组的长度,我们可以随时去修改这个长度3)方法超载时,可以根据返回类型的不同来区分两个方法4)构造方法可以重载5)包的访问控制分为publicprotectedprivate和默认,默认时为public6)一个静态方法里可以包含一个局部变量7)一个实例方法里可以引用外部的一个静态变量8)类可以多重继承9)子类可以继承父类里的所有变量和方法,包括私有的属性和方法10)子类可以继承父类的构造器11)抽象类不可以被实例化12)抽象类里可以有已经实现的方法13)接口里可以有已经实现的方法14)接口里的变量都是私有的15)抽象类是最终类,不可以被继承16)多态性是通过接口机制来实现的17)一个实例方法里可以引用外部的一个静态变量18)接口可以多重继承19)超类的变量可以指向任何一个子类的对象20)父类的构造器不可以被子类继承,但是可以被子类调用21)所有异常类的父类都是err22)Throwable是所有异常类的父类23)Finally里的代码只有程序出现异常时才会被执行24)处理异常的try块不可以嵌套执行25)Collection接口包含set、list、map三个接口26)集合Set里允许有重复的元素27)集合里可以包含任意的对象和基本数据类型28)栈是一种先进先出的存储机制。29)Stack类是Vector的一个子类30)我们可以使用run()方法来启动一个新的线程31)被同步的方法,在同一时刻,可以被不同的线程对象来调用32)Wait()、notify()、notifyAll()只能在同步方法中使用33)守护线程在生成它的线程结束时,也将结束运行34)Component是所有组件类的基类35)Panel不可以独立显示,必须把它放到window里才可以正常显示36)Swing可以不依赖awt,独立运行,并处理所有组件事件37)StringBuilder和StringBuffer一样,都是同步的方法38)MVC的表示层由servlet/jsp/javabean共同组成39)Web服务器就是j2ee服务器 40)Jsp在运行时由容器自动转换为servlet41)每个servlet都单独拥有一个servletContext对象42)http协议是有状态的协议,可以保存客户的请求信息。43)Smtp协议是文件传输协议44)http是基于请求/响应模式的协议45)http协议是无状态、无连接的协议46)get和post方法在使用上都是一样的,没什么区别47)Tomcat服务器是j2ee规范的一个具体实现48)每次请求servlet,都会调用init()方法49)服务器可以通过cookie向客户端写入任意类型的信息50)Cookie是保存在服务器端和客户端的51)Session是永久保存在服务器端的52)Web服务器的默认端口是8053)Tomcat服务器的默认端口是880054)Web.xml文件必须存放到WEB-INF/classes目录下55)Servlet是服务器端的应用小程序,不是web服务器端的应用小程序。56)Servlet的源文件和class文件都必须放到web-inf/classes目录下57)Web.xml文件中配置servlet时,serlvet-name的名称必须和指定的servlet类文件的名称相同58)Session的两种实现方式:cookie和url重写59)在web-xml中配置session失效时间。单位为:秒60)一个浏览器窗口就是一个session61)service()是初始化servlet的方法62)Servlet结束时,自动调用distroy()方法63)在servlet中,保存在范围对象中的对象被称为属性64)在servlet的范围术语中,我们称保存的对象是范围内的会话65)操作范围内属性的方法有setAttribute()getAttribute()removeAttribute()66)通过forward()请求转发的时候,请求和响应对象也将一起被转发到目的页面67)sendRedirect()方法也是请求转发的一种方式68)Jsp中的指令可以放到页面的任意地方69)Jsp中的同一个指令可以在同一个页面中出现多次70)Include指令将当前页面转发到指定的页面71)Jsp隐含7个默认的对象,在编辑页面时可以直接使用72)标志库描述符文件的后缀名是xml73)Jsp具有5个范围的对象,分别是page,request,response,session,application74)Javabean是可重用的java组件75)Javabean里必须提供无变量的构造函数76)Javabean必须实现java.io.Serializable接口77)Javabean中的变量必须是private的,并有相对应的set/get方法78)javaBean中所公开的每块内部状态信息都被称为属性79)对于boolean属性,可以使用这样的获取属性的方法isBooleanPropertyName()80)反省是发生在运行时的一个过程名称,它用来揭示特定的对象可以使用哪些属性和方法。81)反射是一种资源包。使用它可以很容易的获得对字段、方法和构造函数的引用。82)javabean拥有5个作用范围,分别是page,request,response,session,application83)Bean中默认的范围是页面范围。 84)mvc里的模型可以被划分为状态和动作组件85)模型里的状态组件通常是协议无关的,javabean是实现状态组件的逻辑选择86)mvc里的视图属于表示层,负责将特定的事件呈现给用户87)mvc里的控制器负责接收事件,确定合适的处理程序,并对业务逻辑进行处理,然后触发合适的响应给用户。88)Jsp是一种面向对象的语言89)从某种意义上说,标志可以替代模板,因为标志是即插即用的90)自定义标志里的标志处理器是个特出的javabean91)标志库描述符文件是一个基于xml的文件92)TLD文件的扩展名是.tld93)JavaEE是一种技术,它提供了更多更强大的功能来构建java的应用。94)JavaEE主要包括以下组件ServletJspEJBCORBAJNDICOM95)Javascript是java语言的一部分96)Javascript是一种描述性的函数语言97)Javascript必须放在html文件的head之间98)Javascript中没有循环语句99)Javascript中的变量是不区分大小写的100)Javascript可以对一些事件进行处理,方式是通过指定的函数来完成第三部分:填空题1)Jsp语法包括(),指令和()。2)Jsp的脚本元素和指令具有(),但是没有正文3)Jsp指令包括(),include,()4)Page指令里的属性有(),impot,(),buffer等5)Jsp的脚本元素包括(),表达式,()6)Jsp页面中的声明方式是()7)Jsp语法包括(),指令和()。8)Jsp的动作元素分为(),bean标志,()9)Jsp的内置对象包括(),会话,应用程序,(),页面,()10)Cookie已经得到很广泛的应用,它被作为()保存信息的一种技术。11)Java命名和目录接口,简称为()12)对于HttpServlet,service()被分解成doGet(),doPost(),()等方法13)web.xml文件中我们可以设定servlet的装载顺序,()首先被装载14)Ajax不是一种语言,而是集合了多种()、为互联网提高性能的一种()15)AJAX是()和XML16)Ajax带来最大的好处就是异步调用和()17)通过ajax,客户端获取的数据主要有两种类型:文本型和()18)Servlet中的会话是通过HttpServletRequest类的()来创建的19)Jsp文件生命周期内的状态包括:转换前,(),已初始化,(),不在服务20)Javabean只是一个维护一些数据并遵循()约定的类。21)Main()方法总是被指定为public(),返回类型为void 22)如果任何一个操作数属于double类型,则另一个操作数将会被转换成(),然后在进行运算23)如果一个运算里的操作数,不是double,floate,long类型,那么运算将按()类型来进行运算24)转义字符中,退格用()表示,换页用()表示,换行用()表示,回车用()表示,制表符用()表示25)按位操作符只能应用于()类型,而不能应用于其他任何类型的数值。26)在一个方法中定义的变量叫()27)程序中可以访问一个变量的地方称为这个变量的()28)一个方法中的变量在它得到()的时候开始存在。29)String变量就是()类的一个对象。30)编程过程中,总是在声明一个变量的时候对它进行(),这是一个原则。31)判断两个字符串是否相等,应使用方法()32)一个数组元素中可以包含另一个(),所以我们可以定义二维数组或多维数组。33)String对象存贮的是一个()的字符串,不能被()34)类变量可以由任何()和这个类本身引用。35)要想让一个变量成为一个常量,我们要用()来声明这个变量,并且常量的名字采用大写形式。36)静态代码块会在该类()的时候执行,而非静态代码块会在每个对象()的时候执行37)一个对象的寿命由程序中是否仍然有()决定38)一个方法的签名包括()39)没有指定为()的方法可以直接访问类中的任何变量40)递归方法就是调用()的方法41)父类的()永远不会被子类继承42)多态性只应用于(),不会作用于数据成员43)定义抽象类的关键字是()44)子类中构造器的第一条语句应该调用父类的()45)一个抽象类的子类如果没有为从超类继承的所有抽象方法提供具体的实现,则必须也被声明为()46)在一个类中定义的另一个类称为()47)一个finally块中的return语句会引起立刻返回到调用点,此时,finally块中后面的代码将()执行48)异常是()类的子类对象49)你可以定义自己的异常类,它们一般由()类派生而得50)Java支持两种类型的流()和()51)把基本类型的数据写入一个文件,这个流必须为()类型52)如果想把一个对象写入一个流,那么这个类就必须实现()接口53)散列化处理由键对象得到一个整数值,称为()54)迭代器是一个(),可以由一个集合类实现。55)一个Document对象被改变时可能需要得到通知的类都必须实现接口()56)DateFormat类是一个()类,定义在java.()包中。57)Random类型的对象可以生成()float,double类型的伪随机数58)GregorianCalendar对象表示设置到一个给定()的日历59)有()方法可以定义一个类来表示一个线程60)Run方法总是()类型的,不接受参数,并且没有() 61)不是守护线程的线程叫()62)由一个守护线程生成的线程自身在默认状态下是一个()63)isInterrupted()方法用来查看一个线程是否被()64)为了测试一个线程是否(),你可以调用它的isAlive()方法65)可以对()和代码块进行同步的管理66)Sleep()和wait()方法的主要区别在于,后者会释放当前线程锁定的()67)用户线程不会在生成它的线程结束时()68)可以通过调用相应的setPriority()方法来修改一个线程的相对()69)使窗体组件可见的方法是()70)Swing组件以()类为基础71)容器就是可以包含其他组件的一个()72)一个容器中的组件的排列由()控制73)Java中的事件在最顶级分为()和()74)JDBC是一个针对()的接口75)当一张表包含的列值是另一张表的键列时,这些列中的值就叫()76)JDBC中的常用对象有Driver,(),ResultSet等77)使查询结果按降序排列的关键字是()78)DDL是(),DML是()79)PreparedStatement扩展了()接口,在多次执行相同sql语句的时候,执行的速度要快一些80)可以使用()组件把数据以数的形式显示出来第四部分:简答题1)什么是OOP?什么是类?请对比类和对象实例之间的关系。2)什么是类与对象?3)STRING与STRINGBUFFER的区别。4)char型变量中能不能存贮一个中文汉字?为什么?5)描述一下JVM加载class文件的原理机制?6)是否可以继承String类?7)Math.round(11.5)等於多少?Math.round(-11.5)等於多少?8)String是最基本的数据类型吗?9)可以随意调整数组的大小吗10)请定义一个二维数据,大小为3*511)结构化程序设计的三种基本流程是什么?12)循环语句有哪些13)请写出至少20个java关键字14)java中的标示符如何定义,有哪些限制15)java中的变量有几种,试举例说明16)java语言的特点有哪些17)jvm是和平台无关的,对吗?哪些内容和平台相关,哪些无关18)基本数据类型有哪些19)float型floatf=3.4是否正确 20)int和Integer有什么区别21)在JAVA中,如何跳出当前的多重嵌套循环?22)一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?23)&和&&的区别24)GC是什么?为什么要有GC?25)调用gc的方法有哪些?26)swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?27)数组有没有length()这个方法?String有没有length()这个方法?28)Java有没有goto?29)Strings=newString("xyz");创建了几个StringObject?30)作用域public,private,protected,以及不写时的区别31)面向对象的三个基本特征32)abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?33)构造器Constructor是否可被override?34)两个对象值相同(x.equals(y)==true),但却可有不同的hashcode,这句话对不对?35)是否可以从一个static方法内部发出对非static方法的调用?36)说出ArrayList,Vector,LinkedList的存储性能和特性37)Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?38)sleep()和wait()有什么区别?39)同步和异步有何异同,在什么情况下分别使用他们?40)线程的基本概念、线程的基本状态以及状态之间的关系41)JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?42)java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?43)List、Map、Set三个接口,存取元素时,各有什么特点?44)AnonymousInnerClass(匿名内部类)是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?45)简述接口和内部类、抽象类的特点46)文件读写的基本类有哪些47)在java中一个类被声明为final类型,表示了什么意思?48)常用的数据结构有哪些?49)写clone()方法时,通常都有一行代码,是什么?50)String的常用方法有哪些,试说出5种51)比较字符串是否相等的方法有几种,有什么区别52)构造函数的特点有哪些53)抽象类可以被实例化吗?可以被继承吗?54)接口里的变量可以定义为私有的吗?可以有实现的方法吗?55)java中可以类多继承吗?接口可以多继承吗56)构造函数可以重载吗?重载的规则是什么?57)什么是方法的重写,重写时有哪些注意事项58)set集合中不允许出现重复的对象,请问我们使用什么方法来判断两个对象是否相同59)请说明list、set、map的特点和区别60)Java中的异常处理机制的简单原理和应用。61)用最有效率的方法算出2乘以8等於几? 62)java的方法有几种参数传递方法,有什么不同63)介绍JAVA中的CollectionFrameWork64)说出一些常用的类,包,接口,请各举5个65)你知道Object类中有那些方法?(随意说几个即可)66)排序都有哪几种方法?请列举67)写一个简单的冒泡排序的小程序68)静态内部类和内部类的不同69)简述synchronized和java.util.concurrent.locks.Lock的异同?70)当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?71)shorts1=1;s1=s1+1;有什么错?shorts1=1;s1+=1;有什么错?72)java中实现多态的机制是什么?73)什么时候用assert。74)awt中的核心类有那几个75)gui编程中都有哪些事件需要我们处理76)请说出tcp/ip的参考模型77)请说出OSI的参考模型78)for(Objecto:c)这种循环方法的优缺点是是什么:79)socket的通信步骤,及使用的协议是什么80)布局管理器有那些81)socket的通信步骤,及使用的协议是什么82)socket有几种传输方式,分别是什么83)heapandstack有什么区别84)多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么?85)try{}里有一个return语句,那么紧跟在这个try后的finally{}里的code会不会被执行,什么时候被执行,在return前还是后?86)接口是否可继承接口?抽象类是否可实现(implements)接口?aabstractclass和interface有什么区别?88)List,Set,Map是否继承自Collection接口?89)启动一个线程是用run()还是start()?90)Collection和Collections的区别。91)Error与Exception有什么区别?92)HashMap和Hashtable的区别93)谈谈final,finally,finalize的区别94)PreparedStatement与Statement的区别95)什么是java序列化,如何实现java序列化?96)XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式?97)存储过程和函数的区别98)JDBC调用数据库的基本步骤99)事务是什么?有哪些特点100)说出数据连接池的工作机制是什么?101)JAVA的事件委托机制和垃圾回收机制102)如果一个事务在执行过程这个出现异常状况,我们如何来处理103)socket的通信步骤,及使用的协议是什么104)使用jdbc连接数据库的步骤 105)主键和外键的区别106)Jdo是什么?107)XML包括哪些解释技术,区别是什么?108)什么是web容器109)J2EE是什么?110)javascript中如何使用正则表达式校验数字型数据?111)BS与CS的含义。112)java中会存在内存泄漏吗,请简单描述。113)说出Servlet的生命周期。114)应用服务器有那些?115)什么情况下调用doGet()和doPost()?116)forward和redirect的区别117)J2EE是技术还是平台还是框架?118)如何现实servlet的单线程模式 119)servlet的init()方法和service()方法的区别120)MVC的各个部分都有那些技术来实现?如何实现?121)j2ee常用的设计模式?说明工厂模式。122)JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么?123)页面间对象传递的方法124)JSP四种范围是什么?区别是什么?125)JSP中动态INCLUDE与静态INCLUDE的区别?126)jsp有哪些动作?作用分别是什么?127)jsp有哪些内置对象?作用分别是什么?128)Request对象的主要方法:JavaEE高级部分JSP选择题(100题)1)对于JSP的通用规则,描述正确的是:A.JSP标记不区分大小写。B.指令和脚本元素的语法不是基于XML的,但有替代的基于XML的语法。C.在标记中出现的属性值可以不用引号括起来,比如:<%@pagelanguage="Java"%>和<%@pagelanguage=java%>是等同的。D.在标记中使用字符/(正斜杠)作为转义字符。E.如果URL不是以"/"开始的,就被解释为相对于当前的JSP路径。2)对于标记,描述正确的是:A.一般来说,是、标记的子标记。B.如果aa.jsp有代码:,则在next.jsp中可以使用request.getParameter("name");把属性name的值取出来。C.如果aa.jsp有代码:,则在next.jsp中可以使用request.getAttribute("name");把属性name的值取出来。A.如果标记不放在标记内,也就是不作为标记的子标记,则使用浏览器查看时会显示错误页面。3)在web.xml有如下代码段:webmastermyaddress@mycompany.com在Servlet中如何把webmaster的值:myaddress@mycompany.com取出来?A.使用RequestDispatcher的getInitParameter("webmaster")方法B.使用ServletContext的getInitParameter("webmaster")方法C.使用ServletConfig的getInitParameter("webmaster")方法D.使用GenericServlet的getInitParameter("webmaster")方法4)在web.xml有如下代码段:teacherteacherCart在Servlet中如何把servlet名:teacher取出来?A.使用Servlet的getServletName方法。B.使用ServletConfig的getServletName方法。C.使用ServletContext的getServletName方法。D.使用ServletRequest的getServletName方法。5)标记处理器必须对从JSP引擎发来的调用做出反应。其中有两个重要的方法,当打开或者关闭标记就会调用它们,它们分别是:A.dostart()方法和doend()方法。B.doStartTag()方法和doEndTag()方法。C.doStart()方法和doEnd()方法。D.dostartTag()方法和doendTag()方法。6)aa.jsp与bb.jsp属于同一应用,在aa.jsp中使用标记,在bb.jsp中要把beanName这个bean对象变量所引用的对象取出来。那么对于以下描述,正确的是:A.在bb.jsp中仅使用代码:mybeanbc=session.getAttribute("beanName");取出beanName所引用的对象。B.在bb.jsp中取beanName所引用的对象前,先要使用<%@pageimport="mypackage.mybean"%>导入mypackage.mybean类。C.在bb.jsp中,对于使用session的getAttribute方法取出的beanName所引用的对象,要进行强制类型转换。D.在bb.jsp中使用session的getAttribute方法取出的对象和aa.jsp中的beanName所引用的对象无关。7)对于应用开发和部署的过程,J2EE规范定义了一个步骤,请按先后次序选择正确的步骤:A.JSP和Servlet的开发、EJB的开发、打包、运行服务器B.HTML等静态资源的开发、Servlet的开发、会话Bean的开发、实体Bean的开发C.应用组件的开发、把应用组件合成模块、把模块合成应用、应用部署D.组件开发、合成应用、合成模块、部署 8)aa.jsp文件如下:<%!staticintI=0;intj=0;%><%for(;I++<2;){out.print(j++);out.print("");}%>两个客户依次使用浏览器浏览aa.jsp,且每个客户只浏览一次,那么,第2个客户的浏览器将显示什么?A.01B.12C.34D.56E.什么也没有9)J2EE中,在aa.jsp中有行代码:<%request.setAttribute(“Co.”,”isoftstone”);%>在bb.jsp中有行代码:<%out.println((String)request.getAttribute(“Co.”));%>为了使得在bb.jsp中的如上代码可以显示“isoftstone,可以使用()方法。[选择两项]A.在aa.jsp中使用把请求提交到bb.jspB.在aa.jsp中使用把页面重定向到bb.jspC.在aa.jsp中使用<%response.sendRedirect(“bb.jsp”);%>把页面重定向到bb.jspD.在aa.jsp中使用<%@includefile=”bb.jsp”%d>包含页面bb.jspE.在aa.jsp中使用<%config.getServletContext().getRequestDispatcher(“/bb.jsp”).forward(request.response);%>把页面重定向到bb.jsp10、在J2EE中,以下是有关jsp:setProperty和jsp:getProperty标记的描述,正确的是()。[选择两项]A.和标记都必须在的开始标记和结束标记之间B.这两个标记的name属性的值必须和标记的id属性的值一样C.和标记可以不在的开始标记和结束标记之间D.这两个标记的name属性的值可以和标记的id属性的值不同11、在J2EE中,关于JSP文件中的page指令在JSP文件中出现的位置和次数,正确的是()。[选择两项]A.page指令可以在JSP中的任何地方,以任何顺序出现B.一个JSP文件可以有任意多个page指令C.一个JSP文件只能有一个page指令D.在整个JSP文件中,虽然可以有多个page指令,但是任何属性/值对只能出现一次12、在J2EE中,myWebApp目录是一个Web应用程序根目录,当在浏览器中输入http://localhost:8080/myWebApp时,会自动打开该目录下的start.jsp文件。为了达到这个要求,需要web.xml中添加如下代码()。(选择一项) A.start.jspB.start.jspC.start.jspD.start.jsp13、在J2EE中,下面JSP指令的描述,正确的是()。(选择一项)A.指令以“<%@”开始,以“%>”结束B.指令以“<%”开始,以“%>”结束C.指令以“<”开始,以“>”结束D.指令以“”结束14、在J2EE中,aa.jsp文件如下:Look:
<%@includefile=”bb.txt”%>bb.txt文件只有文本:hello!aa.jsp和bb.txt在同一目录下,使用浏览器查看aa.jsp,会看到:Look:Hello!使用()方法,再次打开浏览器查看aa.jsp,会显示:Look:Hello!Teacher!(选择一项)A.把bb.txt的文本改为:hello!Teacher!B.把bb.txt文件删除,然后新建文件bb.txt,所包含文本为:hello!Teacher!C.把bb.txt先改名为cc.txt,然后把名字再次改为bb.txt,把文本改为:hello!Teacher!D.以上方法都不对15、在J2EE中,在web.xml中,有如下代码:30以下描述,正确的是()。(选择一项)A.定义了默认的会话超时时长,时长为30秒B.可以使用HttpSession类的getMaxInactiveInterval()方法把该值取出来C.定义了默认的会话超时时长,时长为30小时D.可以使用Session类的getMaxInactiveInterval()方法把该值取出来16、在J2EE中,<%=”1+4”%>将输出()。(选择一项)A.1+4B.5C.14D.不会输出,因为表达式是错误的 17、下面关于JSP自定义标记的描述正确的是()。(选择一项)A.JSP自定义标记是用于添加新动作标记的扩展机制B.标记库通常被打包成.jar文件,该文件包含实现库标记的Java文件C.web.xml文件的表示类文件的位置D.标记的属性名在web.xml文件中描述18、在J2EE中,在JSP中想要使用JavaBean:mypackage.mybean,则以下写法正确的是()。(选择一项)A.B.C.D.19、在J2EE中,如果使用标记:准备取出bean的属性的值,但propertyName属性在beanName中不存在,也就是说在beanName中没有这样的属性名:propertyName,也没有getPropertyName()方法。那么会在浏览器中显示()。(选择一项)A.错误页面B.nullC.0D.什么也没有20、在J2EE中,对于page指令:<%@pagebuffer="12kb"autoFlush="false"%>,正确的含义是()。(选择一项)A.将输出流输出到不小于12kb的缓冲区中,但当缓冲区满时,会有一个运行时异常指明缓冲区溢出B.将输出流输出到一个小于12kb的缓冲区中,当缓冲区满时,会自动把缓冲输出到客户C.将输出流输出到一个小于12kb的缓冲区中,但当缓冲区满时,会有一个运行时异常指明缓冲区溢出D.将输出流输出到不小于12kb的缓冲区中,当缓冲区满时,会自动把缓冲输出到客户21、J2EE中,aa.jsp文件使用了一个Bean,该Bean属于类mypackage.bb。该Bean和oracle数据库连接,完成对数据库中的某个表的插入、修改和查询数据的功能,mypackage.bb的方法getRs返回了记录集rs,则以下描述正确的是()。(选择两项)A.如果在aa.jsp中要使用这个rs来查询数据,则该JSP必须使用page指令的import属性导入java.sql包中的类。B.如果在aa.jsp中仅仅使用getRs方法返回rs而已,却不使用rs执行任何操作,则在aa.jsp中不用导入java.sql包中的类。C.如果在aa.jsp中使用page指令的import属性导入java.sql包中的类,则就不用在mypackage.bb中导入java.sql包中的类了。D.如果已在mypackage.bb这个javaBean中导入java.sql包中的类了,则就不用在aa.jsp中使用page指令的import属性导入java.sql包中的类。22、在J2EE中,下列关于JSP的scriptlet的陈述正确的是()。(选择两项)A.scriptlet是包含的<%和%>之间的B.scriptlet可以包含import语句C.scriptlet不但包含Java代码,还可以包含html代码D.整个JSP可以有多个<%和%>对23、有J2EE中,以下的page指令设置了使用的脚本语言是Java,且导入了java.rmi.*和java.util.*包,正确的是()。(选择一项) A.<%@pageLanguage=”Java”,import=”java.rmi.*;java.uitl.*”%>B.<%@pagelanguage=”Java”Import=”java.rmi.*,java.util.*”%>C.<%@pagelanguage=”Java”;import=”java.rmi.*,java.util.*”%>D.<%@pagelanguage=”Java”import=”java.rmi.*,java.util.*”%>24、在J2EE中,对于jsp:getProperty标记的描述,正确的是()。(选择两项)A.在JSP文件中,标记jsp:getProperty存在的前提条件是也必须存在jsp:setProperty标记B.使用可以把beanName所引用的Bean对象的所有属性依次打印出来C.用jsp:getProperty标记访问bean的属性,会把属性值转换为String输出到客户的输出流中D.等价于out.println(beanName.getPropertyName());25、在J2EE中,如果a是b的父类,b是c的父类,c是d的父类,他们都在包mypackage中.则以下正确的是().(选择两项)A.B.C.D.26、在J2EE中,以下对JSP的隐含对象解释正确的是().(选择一项)A.没有实例化过的类,可以直接使用类名当作对象使用B.是sun的开发人员自己起的名字,我们自己也可以定义隐含对象C.隐含对象是没有类型的D.是JSP根据ServletAPI而提供的,可以使用标准的变量来访问这些对象27、在J2EE中,使用jsp:useBean标记时,用不同的scope值,对于它们的含义解释正确的是()。(选择三项)A.scope为page表示可以在JSP文件中使用bean,直到页面执行完毕。所有该JSP文件的静态包含文件也可以使用beanB.scope为request表示在任何执行相同请求的JSP文件中使用bean,比如使用response的sendRedirect方法重定向到新的JSP文件,在这个新的JSP文件中就可以使用request的getAttribute方法把bean实例取出来C.scope为session表示bean存在于整个session生存周期内,任何使用相同session 的JSP文件都可以使用session的getAttribute方法把bean实例取出来D.scope为application表示bean存在于整个上下文环境中,可以使用application的getAttribute方法把bean实例取出来28、表示“资源移动”的状态码是。(选择1项)A.200B.302C.400D.50029、哪一个对象可以用于获得浏览器发送的请求。(选择1项)A.HttpServletRequestB.HttpServletResponseC.HttpServletD.Http30、如果不希望在JSP页面中存取HTTP会话,应该如何设定page指令?(选择1项)A.<%pagesession="disabled"%> A.<%pagesession="false"%>B.<%pagesession="true"%>C.<%pagedisablesession="true"%>31、在Servlet的生命周期中,容器只调用一次的方法是。(选择2项)A.serviceB.getServletConfigC.initD.destroy32.在使用服务器端的会话管理时,通过什么方法标识会话。(选择1项)A.IP地址B.CookieC.SessionidD.请求头33.下列哪个为JSP的小脚本的标签?(选择1项)A.<%%>B.<@%>C.<%!%>D.<%--%>34.下面哪一个不是元素的属性。(选择1项)A.scopeB.IdC.ValueD.Class35、HttpServlet中,用来处理POST请求的方法是(选择1项)A.doHeadB.doGetC.doPostD.doPut36、如何创建Cookie?(选择1项)A.使用newCookie语句B.调用response.addCookie方法C.使用Cookie的setMaxAge方法D.setCookie方法37、按照MVC设计模式,Servlet用于实现(选择1项)A.ControllerB.ViewC.ModelD.容器38、动态网站需要的技术为。(选择3项)A.CGIB.HTTPC.ASPD.PHP39、如何取得数据源。(选择1项)A.通过Http A.通过ftpB.JNDIC.通过Connection对象40、以下哪一个不是Filter接口的方法。(选择1项)A.init(FilterConfigconfig)B.voiddestroy()C.voiddoFilter(HttpServletRequestrequest,HttpServletResponseresponse)D.voiddoFilter(ServletRequestrequest,ServletResponseresponse,FilterChainchain)41、javax.Servlet的包中,属于类的是。(选择1项)A.ServletB.GenericServletC.ServletRequestD.ServletContext42、用于表示Statement对象返回结果的是。(选择1项)A.ResultSetB.DriverManagerC.PreparedStatementD.Connection43、如何发送Cookie?。(选择1项)A.使用newCookie语句B.调用response.addCookie方法C.使用Cookie的setMaxAge方法D.setCookie方法44.察看下列JSP内容<%for(inti=0;i<3;i++){%>out.print(i*2);<%}%>当这个JSP被运行时,其结果是什么?(选择1项)A.此JSP因为语法错误,无法运行B.显示出0,2,4C.显示出0,2,4,6D.显示出out.print(i*2)out.print(i*2)out.print(i*2)45、在J2EE中属于Web层的组件有(选择1项)A.HTMLB.EJBC.AppletD.JSP46、关于JSP生命周期的叙述,下列哪些为真?(选择2项)AJSP会先解释成Servlet源文件,然后编译成Servlet类文件A.每当用户端运行JSP时,jspInit()方法都会运行一次B.每当用户端运行JSP时,_jspService()方法都会运行一次C.每当用户端运行JSP时,jspDestroy()方法都会运行一次47、在JSP页面中不可以用来异常处理的有。(选择1项) A.html文件B.JSP文件C.ServletD.Txt文件48.在MVC设计模式中,JavaBean的作用是。(选择1项)A.ControllerB.ModelC.业务数据的封装D.View49.Page指示符的language属性的作用是。(选择1项)A.定义JSP页面的字符编码B.定义JSP页面的MIME类型C.定义JSP页面中使用的脚本语言D.定义JSP页面的描述信息50.下面哪一个隐含变量的存取范围不是page?(选择1项)A.configB.applicationC.outD.page51.在J2EE的Web应用中,编译后的class文件存放的目录为(选择1项)A.classes目录B.images目录C.jar目录D.任意位置52.在JSP中,哪个指令用来声明JSP欲使用的标签库?(选择1项)A.tldB.taglibC.importD.include53.Servlet处理请求的方式为(选择1项)A.以运行的方式B.以线程的方式C.以程序的方式D.以调度的方式54.下列哪个用于在JSP中表示注释?(选择1项)A.<%%>B.<@%>C.<%----%>D.<%--%>55.在JavaWeb应用中,MVC设计模式中的V(视图)通常由()充当。(选1项)A.JSPB.ServletC.ActionD.JavaBean56、网页服务默认的端口号是(),我们可以通过HTTP地址加上端口号来访问网站。(选1项) A.8100B.8080C.9000D.8057、JSP标准标签库(JSTL)的标签库描述符文件的后缀是()。(选1项)A..tldB..jarC..propertiesD..xml58、Web服务是一种通过互联网来描述、发布、定位及调用的服务,下列关于Web服务的理解正确的是()。(选1项)A.Web服务只能在互联网发布,不能在局域网内发布B.Web服务的提供者和请求者必须使用相同的技术平台C.Web服务的提供者和请求者必须使用的语言开发应用程序D.Web服务的数据传输标准是XML59、在JavaWeb应用程序中,使用哪个数据源与JNDI获得数据库连接时,应把JDBC驱动程序jar文件放在()下。(选1项)A.应用程序的src目录B.应用程序的/WEB-INF/lib目录C.Tomcat的根目录D.Tomcat的common/lib目录60、在JavaWeb应用程序中,包含jsp1.jsp和jsp2.jsp,以及封装在user包下的名为User的JavaBean,User中包含loginName属性以及相应的setter和getter方法,如果用户A在浏览器中访问jsp1.jsp后,用户B在浏览器中访问jsp2.jsp,则用户B的浏览器将()。(选1项)jsp1.jsp的代码如下所示:jsp2.jsp的代码如下所示:A.什么也不显示B.显示“null”C.显示“Mary”D.报错,提示无法显示网页61、当浏览器第二次访问以下JSP网页时的输出结果是什么?(单选)<%intb=0;a++;b++;%> a:<%=a%>
b:<%=b%>A.a=0b=0B.a=1b=1C.a=2b=162、下面哪个说法是正确的?(单选)A.对于每个要求访问maillogin.jsp的HTTP请求,Servlet容器都会创建一个HttpSession对象B.每个HttpSession对象都有惟一的ID。C.JavaWeb应用程序必须负责为HttpSession分配惟一的ID63、如果不希望JSP网页支持Session,应该如何办?(单选)A.调用HttpSession的invalidate()方法B.<%@pagesession=“false">64、在标签处理类中,如何访问session范围内的共享数据?(多选)选项:A.在TagSupport类中定义了session成员变量,直接调用它的getAttribute()方法即可。B.在标签处理类TagSupport类中定义了pageContext成员变量,先通过它的getSession()方法获得当前的HttpSession对象,再调用HttpSession对象的getAttribute()方法。C.pageContext.getAttribute(“attributename”,PageContext.SESSION_SCOPE)65、以下代码能否编译通过,假如能编译通过,运行时得到什么打印结果?(单选)request.setAttribute("count",newInteger(0));Integercount=request.getAttribute("count");A.不能编译通过B.能编译通过,并正常运行C.编译通过,但运行时抛出ClassCastException66、以下哪些说法是正确的?(单选)A.每个HTTP请求对应一个单独的ActionServlet实例B.对于每个请求访问HelloAction的HTTP请求,Struts框架会创建一个单独的HelloAction实例。C.每个子应用对应一个单独的RequestProcessor实例D.每个子应用对应一个单独的web.xml文件67、下面哪一个不是JSP本身已加载的基本类?A.java.lang.*B.java.io.*C.javax.servlet.*D.javax.servlet.jsp.*68、对于预定义<%!预定义%>的说法错误的是:A.一次可声明多个变量和方法,只要以“;”结尾就行B.一个声明仅在一个页面中有效C.声明的变量将作为局部变量D.在预定义中声明的变量将在JSP页面初始化时初始化69、在JSP中使用标记时,不会出现的属性是:A.nameB.propertyC.value A.以上皆不会出现70、Page指令用于定义JSP文件中的全局属性,下列关于该指令用法的描述不正确的是:A.<%@page%>作用于整个JSP页面。B.可以在一个页面中使用多个<%@page%>指令。C.为增强程序的可读性,建议将<%@page%>指令放在JSP文件的开头,但不是必须的。D.<%@page%>指令中的属性只能出现一次。71、在JSP中调用JavaBean时不会用到的标记是:A.B.C.D.72、关于JavaBean正确的说法是:A.Java文件与Bean所定义的类名可以不同,但一定要注意区分字母的大小写B.在JSP文件中引用Bean,其实就是用语句C.被引用的Bean文件的文件名后缀为.javaD.Bean文件放在任何目录下都可以被引用73、Servlet程序的入口点是:AA.init()B.main()C.service()D.doGet()74、不能在不同用户之间共享数据的方法是A、通过cookieB、利用文件系统C、利用数据库D、通过ServletContext对象75、下列哪个为JSP的隐含对象。(选择1项)A.envB.pageC.jspinfoD.context76、哪一个不是EL定义的隐式对象?(选择1项)A.cookieB.pageContextC.attributesD.initParam77、下面哪些属于JSTL中的表达式操作标签。(选择1项)A.B.C.D.78、关于JSP,下列说法不正确的有()。A.JSP的全称是JavaServerPagesB.JSP是由sun公司倡导,许多别的公司参与一起建立起来的一种动态网页技术C.在HTML文件里中加入Java程序片断和JSP标签可以构成JSP网页 A.JSP的运行环境是:正确安装JDK即可。79、下面是一JSP页面的代码,请问输出结果是().<%!intI=1;%><%i=++;%>A.什么也不输出。B.弹出内容为“Is1”的对话框。C.弹出内容为“Is2”的对话框。D.当第一次访问这个程序时,弹出一个内容为"Isother"的对话框,从第二次开始,每次访问这个程序都弹出内容为“Is2”的对话框。E.e当第一次访问这个程序时,弹出一个内容为"Is1"的对话框,从第二次开始,每次访问这个程序都弹出内容为“Is2”的对话框。80、下面是一JSP页面的片断代码,请问页面输出结果是().<%StringBufferbuffer=newStringBuffer(”Hello”);buffer.append(“World”);System.out.println(buffer.toString());%>A.HelloB.WorldC.HelloWorldD.什么也不输出81、在列语句正确的有()。A.<%@includefile=”head.jsp”%>B.<%Stringurl=”head.jsp”;%><%@includefile=”url”%>C.<%@includefile=”head.jsp”?name=”isoftstone”%>D.<%StringcompanyName=”isoftstone”;%><%@includefile=”head.jsp”?name=companyName%> 82、JSP1.2中表达式的语法是()。A.<%=expression%>B.<%=expression;%>C.<%@=expression%>D.<%@=expression;%>83、下列选项中能在JSP页面中实现转向的是()。A.response.forward("/index.jsp");B.response.sendRedirect("/index.jsp");C.request.forward("/index.jsp");D.request.sendRedirect("/index.jsp");84、如果某一JSP页面的表单中,有几个复选框,name为“habit”,则该jsp提交后,通过下面()语句去获取用户选中复选框的值。A.request.getAttribute(“habit”);B.request.getParameter(“habit”);C.request.getParameterValues(“habit”);D.request.getHabit();85、关于session的使用,下列说话正确的是()。A.不同的用户窗口具有不同的sessionB.不同的用户窗口具有相同的sessionC.session可能超时间D.Session永远不可能超时86、如果用JSP开发一个聊天程序,不用数据库存储聊天纪录,请问聊天记录最好存储在()中。A.requestB.pageC.sessionD.application87、在JSP页面中,正确引入JavaBean的是()。A.<%jsp:useBeanid=”myBean”scope=”page”class=”pkg.MyBean”%>B.C.D.88、关于,下列说法不正确的是()。A.它可以包含静态文件B.它可以包含动态文件C.当它的flush属性为true时,表示缓冲区满时,将会被清空D.它的flush属性的默认值为true89、用JSP2.0表达式语法在JSP页面上正确显示10+20的结果的是()。A.${10+20}B.${10+20};C.$(10+20)D.$(10+20);90、支持JSP2.0和Servlet2.4的TOMCAT版本是()。A.TOMCAT4.0以上B.TOMCAT4.24以上C.TOMCAT5.0以上 A.TOMCAT5.5以上91、编写自定义标签处理类后,需要编写一个()去描述。A..tag文件B..tld文件C..dtd文件D..xml文件92、关于TagFile说法不正确的是()。A.TagFile是JSP2.0新增的功能B.TagFile是JSP1.2增的功能C.TagFile可以让网页开发人员直接使用JSP语法制作标签D.TagFile的扩展名可以.tag93、下面语句中,最后myVar的值为()。2+2A.0B.4C.2+2D.NULL94、关于ServletFilter,下列说法正确的有()。A.Filter其实就是一个ServletB.Filter可以产生responseC.Filter可以在servlet被调用之前截获requestD.Filter可以用来处理统一认证,过滤不雅字句等。95、在一个Filter中,处理filter业务的是()方法。A.dealFilter(ServletRequestrequest,ServletResponseresponse,FilterChainchain)B.dealFilter(ServletRequestrequest,ServletResponseresponse)C.doFilter(ServletRequestrequest,ServletResponseresponse,FilterChainchain)D.doFilter(ServletRequestrequest,ServletResponseresponse)96、MVC属于()。A.Model1B.Model2C.Model3D.Model497、LOG4J是()。A.LOG4J是APACHE组织提供的一个日志组件,可利用它处理日志B.LOG4J是SUN公司提供的一个日志组件,可利用它处理日志C.LOG4J是IBM公司提供的一个日志组件,可利用它处理日志D.LOG4J是BEA公司提供的一个日志组件,可利用它处理日志98、重向可以使用()方法。A.response.sendRedirect(“login.jsp”):B.request.sendRedirect(“login.jsp”);C.D.99、Session对象的()方法用于设置会话的超时时间。 A.session.setMaxInactiveInterval(30);B.session.setMaxTime(30);C.session.getMaxInactiveInterval();D.session.setAttribute(“time”,30);100、sesson对象的()方法用于判断是否为开始新会话。A.begin()B.isNewSessionID()C.invalidate()D.isNew()简答题(9题)1、jsp有哪些内置对象?作用分别是什么?2.jsp有哪些动作?作用分别是什么?3.forward和redirect的区别4.JSP中动态INCLUDE与静态INCLUDE的区别?5.两种跳转方式分别是什么?有什么区别?6.JSP的内置对象及方法。7、JSP中动态INCLUDE与静态INCLUDE的区别?8、JSP的常用指令?9、jsp的四种范围Servlet选择题(41题)1、有两个Servlet:servlet1和servlet2,servlet1把HttpServletRequest和HttpServletResponse成功发送到servlet2,在servlet1中有如下代码:IntegerI=newInteger(10);request.setAttribute("x",I);以下是在servlet2中对属性x操作的代码,正确的是:A.Integery=request.getAttribute("x");B.Objecty=request.getAttribute("x");C.inty=((Integer)request.getAttribute("x")).intValue();D.Integery=(Integer)request.getAttribute(x);E.request.removeAttribute("x");2、在web.xml中,有如下代码:30对于以下描述,正确的是:A.定义了默认的会话超时时长。时长为30秒。B.可以使用HttpSession接口的getMaxInactiveInterval()方法把该值取出来。C.定义了默认的会话超时时长。时长为30小时。 D.可以使用Session类的getMaxInactiveInterval()方法把该值取出来。3、对于自己编写的Servlet1,以下对Servlet1的定义正确的是:A.classServlet1implementsjavax.servlet.ServletB.classServlet1extendsjavax.servlet.GenericServletC.classServlet1extendsjavax.servlet.http.HttpServletD.classServlet1extendsjavax.servlet.ServletRequest4、对于简单属性来说,Bean工具是这样找出属性的:A.如果有XX方法,则暗指有一个名为“XX”的属性。B.如果有一个方法名为isX,则通常暗指“X”是一个布尔属性。C.如果有一个方法名为isNotX,则通常暗指“X”是一个布尔属性。D.如果有setX和getX方法,则暗指有一个名为“X”的属性。5、如下代码在Servlet1.java中。importjavax.servlet.*;importjavax.servlet.http.*;importjava.io.IOException;importjava.io.PrintWriter;publicclassServlet1extendsHttpServlet{publicvoidinit()throwsServletException{}publicvoidservice(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{PrintWriterout=response.getWriter();out.println("hello!");}}假如编译Servlet要具备的环境都已经建立好。现在用完全正确的命令编译该文件,对于以下陈述正确的是:A.编译该文件时会提示缺少doGet()或者doPost()方法,编译不能够成功通过B.编译后,把Servlet1.class放在正确位置,在浏览器中查看该Servlet1,会看到输出文字:hello!。C.编译后,把Servlet1.class放在正确位置,在浏览器中查看该Servlet1,却看不到任何输出的文字。D.编译后,把Servlet1.class放在正确位置,在浏览器中查看该Servlet1,却看到产生运行时错误的出错信息。6、my.html把请求传递到Servlet:myservlet。My.html文件如下:sample1sample2在myservlet中,使用哪个方法,可以查看到用户在浏览my.html时选择的所有值。A.getParameterValues方法B.getParameter方法 C.getQueryString方法D.getAttribute方法7、在J2EE中,对于HttpServlet类的描述,正确的是()。(选择三项)A.我们自己编写的Servlet继承了HttpServlet类,一般只需要覆盖doPost或者doGet方法,不必覆盖service()方法。因为一个service()方法是空的B.HttpServlet类扩展了GenericServlet类,实现了GenericServlet类的抽象方法service()C.HttpServlet类有两个service()方法D.我们自己编写的Servlet继承了HttpServlet类,一般只需要覆盖doPost或者doGet方法,不必覆盖service()方法。因为一个service()方法会调用doPost或者doGet方法8、在J2EE中,在web.xml中有如下代码段:…………………listOrderscom.mycompany.myactions.ListOrdersAction…………………其中,省略号表示省略了一些代码。在Servlet中()把初始化参数listOrders的值:com.mycompany.myactions.ListOrdersAction取出来。(选择一项)A.使用Servlet的getInitParameter(“listOrders”)方法B.使用ServletContext的getInitParameter(“listOrders”)方法C.使用ServletConfig的getInitParameter(“listOrders”)方法D.使用ServletRequest的getInitParameter(“listOrders”)方法9、在J2EE中,当用户在浏览器中输入:http://localhost:8080/myWebApp/start/,就会调用student这个Servlet,可以在Web.xml中()配置。(选择一项)A./start/*studentB.student/start/*C.studentstudentstudent/start/*D.ststudent student/start/*10、在J2EE中,Servlet从实例化到消亡是一个生命周期。下列描述正确的是()。(选择两项)A.在典型的Servlet生命周期模型中,每次Web请求就会创建一个Servlet实例,请求结束Servlet就消亡了B.init()方法是容器调用的Servlet实例的第一个方法C.在包容器把请求创送给Servlet之后,和在调用Servlet实例的doGet或者doPostD.方法之前,包容器不会调用Servlet实例的其他方法E.在Servlet实例消亡之前,包容器调用Servlet实例的destroy()方法11、在J2EE中,在web.xml有如下代码段:teacherteacherCart在Servlet中()把servlet名:teacher取出来。(选择一项)A.使用Servlet的getServletName方法B.使用ServletConfig的getServletName方法C.使用ServletContext的getServletName方法D.使用ServletRequest的getServletName方法12、在J2EE中,有如下代码在Servlet1.java中,importjavax.servlet.*;…importjava.io.PrintWriter;publicclassServletextendsHttpServlet{publicvoidinit()throwsServletException{}publicviodservice(HttpServletRequestrequest,HttpSevvletResponseresponse)throwsServletException,IOException{PrintWriterout=response.getWriter();Out.println(“hello!”)}}假如编译Servlet要具备的环境都已经建立好.现在用完全正确的命令编译文件,对于以下陈述正确的是().(选择一项)A.编译该文件时会提示缺少doGet()或者doPost()方法,编译不能够成功通过B.编译后,在浏览器中查看该Servlet1,会看到输出文字:“hello!”C.编译后,在浏览器中查看该Servlet1,却看不到输出的文字D.编译后,在浏览器中查看该Servlet1,却看到产生运行时错误的出错信息13、在J2EE中,ServletResponse的()方法可以返回在应答中写入二进制数据的对象,()方法可以返回应答中发送字符文本的对象.(选择一项)A.getOutputStream()和getWrite()方法B.getWrite()和getOutputStream()方法 A.getInputStream()和getPrint()方法B.getStream()和getPrint()方法14、在J2EE中,Servlet1的代码如下:importjavax.servlet.*;…importjava.io.*;publicclassServlet1extendsHttpServlet{publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponsethrowsServletException,IOException{response.setContentType(“text/html”);PrintWriterout=response.getWriter();Stringbb=request.getQueryString();Stringbb=request.getMethod();outprintln(aa);out.println(bb);}}把Servlet.class文件放在Web服务器适合的目录下,在浏览器地址栏内输入:http://localhost:8080/sevrvlet/Servlet1?name=isoftstone&phone=12345678,看到的结果是().(选择一项)A.name=isoftstone&phone=12345678GETB.name=isoftstone,phone=12345678GETC.isoftstone,12345678POSTD.name,phoneGET15、在J2EE中,对于HttpServlet类的描述,不正确的是().(选择一项)A.我们自己编写的Servlet继承了HttpServlet类,一般只需覆盖doPost或者doGet方法,不必覆盖sevrvice()方法.因为一个sevrvice()方法是空的B.HttpServlet类扩展了GenericServlet类,实现了GenericServlet类的抽象方法sevrvice()C.HttpServlet类有两个sevrvice()方法D.我们自己编写的Servlet继承了HttpServlet类,一般只需覆盖doPost或者doGet方法,不必覆盖sevrvice()方法.因为一个sevrvice()方法会调用doPost或者doGet方法16、在J2EE中,在web.xml有如下代码段:webmastermyaddress@mycompany.com在Servlet中()把webmaster的值:myaddress@mycompany.com取出来。(选择一项)A.使用RequestDispatcher的getInitParameter(“webmaster”)方法B.使用ServletContext的getInitParameter(“webmaster”)方法C.使用ServletConfig的getInitParameter(“webmaster”)方法D.使用GenericServlet的getInitParameter(“webmaster”)方法 17、在J2EE中,对于在Servlet如何获得会话,描述正确的是()。(选择两项)A.HttpServletRequest类的getSession方法有两个:带参数的getSession方法和不带参数的getSession方法B.在servlet中,可以使用HttpSessionsession=newHttpSession()创建session对象C.如果HttpServletRequest类的getSession方法的参数为false,表示如果没有与当前的请求相联系的会话对象时,该方法返回nullD.如果HttpServletRequest类的getSession方法的参数为true,表示如果没有与当前的请求相联系的会话对象时,该方法返回null18、从以下哪一个选项中可以获得Servlet的初始化参数。(选择1项)A.ServletB.ServletContextC.ServletConfigD.GenericServlet19.在Servlet处理请求的方式为。(选择1项)A.以进程的方式B.以程序的方式C.以线程的方式D.以响应的方式20.用于调用存储过程的对象是。(选择1项)A.ResultSetB.DriverManagerC.CallableStatemetD.PreparedStatement21.下面哪一个标记与Servlet的配置无关(选择1项)A.servlet-mappingB.servlet-classC.url-patternD.tag22.与HttpSessionListener接口有关的方法是。(选择2项)A.SessionInitialized()B.SessionCreated()C.SessionFinialized()D.SessionDestroyed()23.HttpServlet中,用来处理GET请求的方法是。(选择1项)A.doHeadB.doGetC.doPostD.doPut24.在Servlet的生命周期中,容器只调用一次的方法是(选择1项)A.serviceB.getServletConfigC.afterD.init25.当Web应用程序被关闭时,Servlet容器会调用ServletContext“监听器”的哪个方法?(选择1项) A.contextInitialized()B.contextDestroyed()C.contextFinialized()D.contextShutdown()26.在J2EE中属于Web层的组件有。(选择1项)A.ServletB.EJBC.AppletD.HTML27、在JavaEE中,HttpServletRequest对象是由()创建的。(选1项)A.由Servlet容器负责创建,对于每个HTTP请求,Servlet容器都会创建一个HttpServletRequest对象B.由JavaWeb应用的Servlet或JSP组件负责创建,当Servlet或JSP组件响应HTTP请求时,先创建HttpServletRequest对象C.由程序员通过编码形式创建,以传递请求数据D.以上都不对28、在javax.servlet.http.*API中,HttpServlet的()方法用来处理客户端的请求。(选2项)A.Init()B.doPost()C.doGet()D.destroy()29、某JavaWeb应用的上下文路径是root,配置文件web.xml中有如下片段,则以下说法正确的是()。(选2项)processslt.ProcessServletprocess/procA.在包slt中,有一个名为ProcessServlet.class的文件B.该Servlet的访问路径是http://机器IP:端口号/root/processC.该Servlet的访问路径是http://机器IP:端口号/root/ProcessServletD.该Servlet的访问路径是http://机器IP:端口号/root/proc30、Servlet是一个在服务器上运行、处理请求信息并将其发送到客户端的Java程序。()接受服务请求、找到Servlet类、加载Servlet类并创建Servlet对象。(选1项)A.客户端B.IE浏览器C.Servlet容器D.Servlet本身31、MVC设计模式包含模型层、视图层和控制器层,在下列组件中扮演控制器角色的是()。(选1项)A.ServletB.JSP A.JavaBeanB.HTML32、在JavaWeb应用程序中,包含两个名为Servlet1和Servlet2的HttpServlet,在web.xml中指定Servlet2的访问路径为“/Servlet2”,Servlet1的doGet方法中的代码为:PrintWriterout=response.getWriter();out.print(“Servlet”);RequestDispatcherdispatcher=request.getRequestDispatcher(“/servlet2”);dispatcher.forward(request,response);out.close();Servlet2的doGet方法中的代码为:PrintWriterout=response.getWriter();out.print(“Servlet2”);out.close();如果用户在浏览器中访问Servlet1,则浏览器将()。(选1项)A.显示“Servlet1”B.显示“Servlet2”C.显示“Servlet1Servlet2”D.什么也不显示33、在JavaWeb应用程序中,给定某Servlet程序的代码如下所示:publicclassServlet1extendsHttpServlet{publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{System.out.printIn(“get”);}publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{System.out.printIn(“post”);doGet(request,response);}}用户在浏览器地址栏中键入正确的请求URL并回车后,在控制台上显示的结果是()。(选1项)A.getB.postC.getpostD.postget34、HTTP协议的全称是()。A.HypertextTransportProtocolB.HypertextTransportProtocolC.HypertextTransferProtocolD.HypertextTransferProtocol35、在WEB应用程序的目录结构中,在WEB-INF文件夹外的文件为()。A..jsp文件 A..class文件B..jar文件C.web.xml文件36、在Servlet中,下列语句可以正确获取PrintWriter对象的是()。A.PrintWriterout=request.getWriter();B.PrintWriterout=request.getPrintWriter();C.PrintWriterout=response.getWriter();D.PrintWriterout=response.getPrintWriter();37、编写Servlet的doPost方法时,需要抛出异常为()。A.ServletException,IOExceptionB.ServletException,RemoteExceptionC.HttpServletException,IOExceptionD.HttpServletException,RemoteException38、如果在web.xml里有如下配置,则在webapp下的jsp里能提交到该Servlet的正确语句是()。myservletcom.jbaptech.accp.newspublish.servlet.MyServletmyservlet/myservletA.B.C.D.39、Servlet服务结束时,Servlet会调用()方法去释放资源。A.free()B.free(ServletConfigconfig)C.destroy()D.destroy(ServletConfigconfig)40、在Servlet里,能实现重定向的方法有()。A.运用javax.servlet.http.HttpServletRequest接口的sendRedirect方法B.运用javax.servlet.http.HttpServletResponse接口的sendRedirect方法C.运用javax.servlet.RequestDispatcher接口的forward方法D.运用javax.servlet.ResponseDispatcher接口的forward方法41、利用JavaMailAPI发送邮件的过程中,()能获取正确的session对象。A.Sessionmailsession=Session.getInstance();B.Sessionmailsession=Session.getInstance(objProperties);C.Sessionmailsession=request.getSession();D.Sessionmailsession=request.getInstance(objProperties);简答题(17题)1、说一说Servlet的生命周期? 2、JAVASERVLETAPI中forward()与redirect()的区别?3.Servlet的基本架构代码片断是什么?4.什么情况下调用doGet()和doPost()?5.servlet的生命周期是什么?6.如何现实servlet的单线程模式?7.页面间对象传递的方法是什么?8.四种会话跟踪技术包括哪几项?9.Request对象的主要方法包括哪些?10.我们在web应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,如何输出一个某种编码的字符串?11.Servlet执行时一般实现哪几个方法?12.说出数据连接池的工作机制是什么?13.Class.forName的作用?14、什么情况下调用doGet()和doPost()?15、servlet的生命周期?16、JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么?17、四种会话跟踪技术?Struts选择题(62题)1)在Struts实现的MVC框架中,充当中央控制器的是()。A.ActionB.EJBC.ActionServletD.JSP2)在基于Struts框架的Web应用中,下面关于Action类的说法正确的是()。A.Action类属于模型组件B.Action类主要用来完成实际的业务逻辑C.Action类负责调用模型的方法,更新模型的状态,并帮助控制应用程序的流程D.在Web应用启动时会自动加载所有的Action实例3)在基于Struts框架的Web应用中,下面关于ActionFormBean的说法正确的是()。A.ActionFormBean用来完成一些实际的业务逻辑B.Struts框架利用ActionFormBean来进行视图和控制器之间表单数据的传递C.ActionForm负责调用模型的方法,更新模型的状态D.ActionFormBean包含一些特殊的方法,用于验证表单数据以及将其属性重新设置为默认值4)下面对于Struts控制器组件的说法正确的是()。A.对于多应用模块的Struts应用,每个子应用都有各自的ActionServlet实例B.在Struts应用的生命周期中,仅创建ActionServlet的一个实例C.Action组件是用户请求和业务逻辑之间的桥梁D.Struts框架中只允许在一个应用中配置一个Action类5)在Struts配置文件中,()元素的processorClass属性用于配置RequestProcessor类。A.B. A.B.6)Action类的execute方法返回的ActionForward对象name属性必须与struts-config.xml中元素的()属性匹配A.forwardB.NameC.PathD.Redirect7)在Struts应用中,要在网页上输出personbean对象的userName属性值,下列代码()是正确的。A.B.C.D.8)以下代码定义了一个Vector类型的集合变量Animals:<%Vectoranimals=newVector();animals.addElement("Dog");animals.addElement("Cat");animals.addElement("Bird");%>现要求通过标签遍历该集合中的元素,并将每个元素的内容输出到网页中,下列代码正确的是()。A.
B.
C.
D.
9)分析ActionFormBean的validate方法:publicActionErrorsvalidate(ActionMappingactionMapping,HttpServletRequesthttpServletRequest){ActionErrorserrors=newActionErrors();if((userName==null)||(userName.length()<1)){}returnerrors;} 以上方法完成的功能为:若用户没有在表单中输入姓名就提交表单将生成表单验证错误。在下划线上填入()。A.errors.add("username");B.errors.add("username",newActionMessage("Enterusername"));C.errors.add(newActionMessage("Enterusername"),"username");D.errors.add(ActionMessage("Enterusername"));10)Validator框架采用配置文件()来配置验证规则。A.validator-rules.xmlB.web.xmlC.validation.xmlD.struts-config.xml11)在Struts应用程序的JSP页面上,使用html:optionsCollection标签初始化从数据库查询得到的下拉列表框选择项,该标签的()属性表示将要显示的数据集合。(选1项)A.nameB.labelC.valueD.property12)浏览Web不使用Struts错误处理机制的步骤包括以下几步,他们的正确顺序是()。(选1项)1.修改对应的Action代码2.编辑属性文件3.在页面上显示报错信息A.123B.132C.312D.21313)在Struts中,()选项中的作法能够正确定义ActionBean。(选1项)A.继承自ActionBean类B.继承自ActionForm类C.继承自DispatchAction类D.在Struts配置文件中直接配置得到14)在Struts中可以使用实体对象作为Form的属性,现要定义ActionForm的子类TestForm,它的属性为实体类型TestBean的对象,那么下列选项中的代码正确的是()。(选1项)A、publicclassTestFormextendsActionForm{privateTestBeanbean=newTestBean();publicTestBeangetBean(){returnbean;}publicvoidsetBean(TestBeanbean){this.bean=bean;}}B、publicclassTestFormextendsActionForm{privateTestBeanbean=newTestBean();publicvoidsetBean(TestBeanbean){this.bean;} }C、publicclassTestFormextendsActionForm{privateTestBeanbean=newTestBean();publicTestBeangetBean(){returnbean;}}D、publicclassTestFormextendsActionForm{privateTestBeanbean=newTestBean();}15、在Struts应用程序中,Struts-config.xml配置文件内容如下所示:则选项中关于上述配置内容的叙述错误的是()。(选1项)A.TestAction继承自org.apache.struts.action.ActionB.TestAction处理请求后的目标响应页面之一为success.jspC.TestAction处理请求出错时转向的页面为test.jspD.TestAction处理请求的请求均来自test.jsp页面16、在Struts应用程序中,index.jsp中包含如下所示代码:<%String[]language={“JAVA”,”C”,”HTML”,”SQLSERVER”};pageContext.setAttribute(“languages”,language);%>则在index.jsp中添加选项()中的代码能够在页面上显示如下所示的效果:JAVACHTMLSQLSERVER(选1项)A、
B、
C、
D、
17、在Struts应用程序中,创建了定义报错信息的资源文件后,应在()文件中添加对这个资源文件的引用。(选1项)A.web.xmlB.ApplicationResources.propertiesC.struts-config.xmlD.ApplicationResources_zh_CN.properties18、在Struts应用程序的JSP页面上,使用()Struts标签初始化从数据库查询得到的下拉列表框选择项。(选1项)A.html:hiddenB.html:formC.html:textD.html:optionsCollection19、在Struts中,使用动态Form的好处是()。(选2项)A.可以不用再编写ActionForm程序代码,只在Struts配置文件中配置即可B.当业务发生变化,表单提交数据发生变化时只修改Struts配置文件中的配置即可C.在使用动态Form时,只是存储和读取数据的方式和普通ActionForm略有差别D.HTTP请求中的数据不能自动填充到动态Form中20、在Struts应用程序中,定义了DispatchAction类的子类TestAction,那么下列TestAction类的方法中可用于处理请求的是()。(选1项)A、publicvoidprint{//省略此处代码}B、publicStringprint{//省略此处代码return“success”;}C、publicActionForwardprint(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse){//省略此处代码returnmapping.findForward(“success”);}D、privateActionForwardprint(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse){//省略此处代码returnmapping.findForward(“success”);}21、在使用Struts框架构建应用系统时,在配置文件中出现如下配置信息,此处假设控制器映射为*.do,关于该段配置信息,以下描述中正确的是()。(选2项) A.该请求对应的FormBean是app.LogonProcessB.当请求页面的URI是/logon.jsp时,控制器将信息委托app.LogonProcess处理C.当通过/logonSubmit.do提交请求信息的时候,控制器信息委托app.LogonProcess处理D.该action对应的ActionForm的作用域为request22、下面哪一个项目仅在Struts中出现?(选择1项)A.JavaBeanB.Web.xmlC.struts-config.xmlD.application.propertyes23、以下哪些接口能够实现对Web访问者的身份认证?(选择1项)A.HttpServletRequestB.HttpServletResponseC.HttpSessionD.HttpServlet24、MVC模式中,实现Web应用程序的逻辑流控制主要依靠什么来完成?(选择1项)A.JavaBeanB.JSPC.ServletD.Html25、在Struts配置文件中,使用什么元素表示ActionForm?(选择1项A.formB.form-beanC.form-actionD.actionform26、下面的那一个不属于MVC模式中的对象?(选择1项)A.ModelB.ViewC.CollectionD.Controller27、下面哪些任务是RequestProcessor完成的?(多选)选项:A.把Struts配置文件信息加载到内存中B.把资源文件信息读入到内存中C.如果需要的话,创建ActionForm实例,组装数据,并进行表单验证D.找到匹配的Action实例,调用其execute()方法E.把请求转发到Action的execute()方法返回的ActionForward代表的组件。28、对于以下代码,HelloAction希望把请求转发给hello.jsp,在HelloAction的execute()方法中如何实现?(多选)A.return(newActionForward(mapping.getInput()));B.return(mapping.findForward("SayHello"));C.return(mapping.findForward(“hello.jsp"));29、在Struts应用的视图中包含哪些组件?(多选)选项:A.JSPB.ServletC.ActionServletD.ActionE.代表业务逻辑或业务数据的JavaBeanF.EJBG.客户化标签30、在Struts应用的控制器中包含哪些组件?(多选)选项:A.JSPB.ServletC.ActionServletD.ActionE.代表业务逻辑或业务数据的JavaBeanF.EJBG.客户化标签31、在Struts应用的模型中包含哪些组件?(多选)选项:A.JSPB.ServletC.ActionServletD.ActionE.代表业务逻辑或业务数据的JavaBeanF.EJBG.客户化标签32、以下代码定义了一个变量,如何输出这个变量的值?(多选)选项:A.B.C.<%=stringBean%>D.<%StringmyBean=(String)pageContext.getAttribute(“stringBean”,PageContext.PAGE_SCOPE);%><%=myBean%>33、把静态文本放在ResourceBundle中,而不是直接在JSP文件中包含这些静态文本,有什么优点?(多选) A.提高可维护性B.提高可重用性C.支持国际化D.提高运行速度34、以下哪些说法是正确的?(单选)选项:A.每个HTTP请求对应一个单独的ActionServlet实例B.对于每个请求访问HelloAction的HTTP请求,Struts框架会创建一个单独的HelloAction实例。C.每个子应用对应一个单独的RequestProcessor实例D.每个子应用对应一个单独的web.xml文件35、下面哪些任务是RequestProcessor完成的?(多选)选项:A.把Struts配置文件信息加载到内存中B.把资源文件信息读入到内存中C.如果需要的话,创建ActionForm实例,组装数据,并进行表单验证D.找到匹配的Action实例,调用其execute()方法E.把请求转发到Action的execute()方法返回的ActionForward代表的组件。36、对于以下代码,HelloAction希望把请求转发给hello.jsp,在HelloAction的execute()方法中如何实现?(多选)选项:A.return(newActionForward(mapping.getInput()));B.return(mapping.findForward("SayHello"));C.return(mapping.findForward(“hello.jsp"));37、对于以下这段配置ActionServlet的代码,哪些说法是正确的?(多选)actionorg.apache.struts.action.ActionServletconfig/WEB-INF/myconfig.xml2 action*.do选项:A.Servlet容器在启动Struts应用时,会初始化这个ActionServlet。B.对于所有URL中以”.do”结尾的HTTP请求,都由ActionServlet处理。C.这段代码位于struts-config.xml中。D.这段代码位于web.xml中。38、下面的那一个不属于MVC模式中的对象?(选择1项)A.ModelB.ViewC.CollectionD.Controller39、ActionForm在Struts中属于?(选择1项)A.视图B.控制器C.模型D.配置文件40、ActionForm的作用域包括哪些层次?(选择2项)A.serverB.requestC.responseD.session41、ActionServlet在Struts中属于?(选择1项)A.视图B.控制器C.模型D.配置文件42、Action在Struts中属于?(选择1项)。A.视图B.控制器C.模型D.配置文件43、Struts初始化过程调用的第一个方法是?(选择1项)A.start()B.main()C.submain()D.init()44、下面哪一个项目仅在Struts中出现?(选择1项)A.JavaBeanB.Web.xmlC.struts-config.xmlD.application.propertyes45、假定Struts-config.xml里有,则以下哪些方法调用是正确的?(选择2项)A.returnmapping.findforward(“aaa”);B.returnmapping.findforward(“success”);C.returnmapping.findforward(“ccc”);D.returnmapping.findforward(“error”);46、下面()是框架。A.JSPB.Struts标签库C.Criteria查询D.DWR47、MVC设计模式的目的是()。A.使程序结构更清晰B.使程序更好维护C.保证视图和模型的隔离D.逻辑上将视图、模型和控制器分开48、下面信息不在Struts配置文件中配置的是()。A.FormBean配置信息B.Spring声明式事务C.Action转发路径D.Struts引用的资源文件49、在Struts中,DispatchAction和普通Action的配置不同的是()。A.需要多配置一个可选的parameter属性B.需要多配置一个必须的parameter属性C.需要多配置一个可选的method属性D.需要多配置一个必须的method属性50.在Struts中,关于DispatchAction的说法中,错误的是()。A.访问DispatchAction必须提供parameter参数B.DispatchAction中必须实现execute方法C.DispatchAction可以与Spring进行集成D.可通过传入参数的值指定访问DispatchAction中的方法的名称51.下面关于Struts报错机制说法正确的是()。A.强制使用国际化B.错误信息保存在session中C.使用标签显示错误信息D.也可以使用显示错误信息52.某ActionBean中有如下代码:errors.add("order_count",newActionMessage("error.biz_ruler.no_storage"));在页面上显示这条错误信息的代码是()。A.B. A.B.53.某FormBean中有List类型的data属性,则页面显示其数据的代码是()。A....B....C....D....54.下面代码中,有哪些错误()。A.应包含标签B.标签没有指定name属性C.应为D.text="username"应为label="username"55.在三层结构中,数据访问层承担的责任是()。A.定义实体类B.数据的增删改查操作C.业务逻辑的描述D.页面展示和控制转发56.下列()是错误的描述。AA.Struts是源代码保密的商用软件B.Struts是开发Web应用的框架系统C.Struts基于MVC设计模式D.Struts是Apache的子工程57.Struts框架的控制器主要由()负责。A.EJBB.JSP页面C.ActionServlet类D.标签库58.Struts通过()支持MVC模式的视图开发。A.JSP标签库和FormBeanB.EJBC.ServletD.Applet59.Struts的()标签可以有条件地产生输出文本,在对象集合中循环从而重复地产生输出文本,以及应用程序流程控制。A.NestedB.BeanC.LogicD.Html60.Struts应用程序的默认配置文件为()。A.struts-config.xmlB.web.xmlC.ejb-jar.xml A.sun-web.xml61.Struts使用()捕获表单数据。A.ActionErrorB.ActionFormC.ActionD.EJB62.下列()不是Web应用开发的框架系统。A.StrutsB.JSFC.SpringD.JavaMail简答题(3题)1、Struts工作机制?为什么要使用Struts?2.Struts的validate框架是如何验证的?3.说下Struts的设计模式Spring选择题(15题)1、关于spring说法错误的是()?A.spring是一个轻量级JAVAEE的框架集合B.spring包含一个“依赖注入”模式的实现C.使用spring可以实现声明事务D.spring提供了AOP方式的日志系统2、关于依赖注入说法正确的是()?A.依赖注入的目标是在代码之外管理程序组建间的依赖关系B.依赖注入即是“面向接口”的编程C.依赖注入是面向对象技术的替代品D.依赖注入的使用会增大程序的规模3、关于AOP错误的是()?A.AOP将散落在系统中的“方面”代码集中实现B.AOP有助于提高系统可维护性C.AOP已经表现出将要替代面向对象的趋势D.AOP是一种设计模式,Spring提供了一种实现4、关于springAOP错误的是()?A.首先要编写方面代码,实现MethodBeforeAdvice接口B.AOP采取拦截方法调用方式实现,可以在调用方法前,后,抛出异常时拦截C.AOP采取代理的方式实现,常用代理对象的类别为org.springframework.aop.framework.ProxyFactoryBeanD.AOP可以在对目标(target)不做任何修改的情况下增加程序功能5、在Spring配置文件di.xml中包含下面的配置代码,可以推断()。(选1项) A.下列语句运行时无异常ApplicationContextcontext=newClassPathXmlApplicationContext(“di.xml”);Aa=(A)content.getBean(“a”);B.A是抽象类C.A是接口D.类A中定义了getM()方法6、关于Struts+Spring+Hibernate集成框架,下列说法正确的是()。(选1项)A.使用SSH框架开发项目,由于增加了大量配置工作,从而会降低开发的效率B.三个框架可以用多种方式进行集成C.使用SSH框架开发不利于实现复杂的业务逻辑D.使用SSH框架开发不利于构造复杂的页面和交互流程7、对于Sping和Struts的集成,下列说法错误的是()。(选1项)A.ActionBean的实例可以由Spring创建B.在Struts配置文件中,ActionBean的配置可以如下所示:C.在Spring配置文件中,ActionBean的配置可以如下所示:D.由于Spring本身也提供了MVC实现,所以不能与Struts集成8、在Spring框架中,面向方面编程(AOP)的目标在于()。(选1项)A.编写程序时不用关心其依赖组件的实现B.将程序中涉及的公用问题集中解决C.封装JDBC访问数据库的代码,简化数据访问层的重复性代码D.实现页面的“无刷新”9、在Spring中,配置Hibernate事务管理器,(HibernateTransactionManager)时,需要注入的属性名称是()。(选1项)A.dataSourceB.sessionFactoryC.baseHibernateDaoD.transactionProxyFactoryBean10、在Spring的配置文件中,包含如下所示的配置代码,则下面说法正确的是()。(选2项)A.可以通过下列代码获取对象实例:ApplicationContextcontext=newClassPathXmlApplicationContext(“di.xml”);TestBeant=(TestBean)context.getBean(“test.TestBean”);B.TestBean中一定有如下语句:privateStringdp=“”; A.TestBean中一定有方法:publicvoidsetSp(Stringvalue)B.属性dp的类型可能是int也可能是String11.下面关于“依赖注入”的说法,错误的是()。A.将组件间的依赖关系采取配置文件的方式管理,而不是硬编码在代码中B.降低了组件间的耦合,使程序更容易维护和升级C.促进了“面向接口”编程,使构建大规模程序更轻松D.需要定义大量接口,增加了编码复杂度12.关于Spring的说法错误的是()。A.通过setter方法实现依赖注入B.对Hibernate提供了支持,可简化Hibernate编码C.通过AOP可以轻松与Hibernate集成D.通过AOP实现了声明式事务管理13.关于SpringAOP,下面说法错误的是()。A.支持前置通知、后置通知、环绕通知B.采用代理的方式实现C.在Spring2.0以前的版本中,通过、和配置D.与“依赖注入”实现紧密结合14.对下面Spring声明式事务的配置含义的说明错误的是()。PROPAGATION_REQUIRED,readOnlyPROPAGATION_REQUIREDA.定义了声明式事务的配置模板B.对get方法采用只读事务C.缺少sessionFactory属性的注入D.配置需要事务管理的bean的代理时,通过parent引用这个配置模板,代码如下:15.下面Spring声明式事务的配置中,存在哪些错误?A.应为B.execution(*com.conghai.isale.biz.*(..))应为execution(*com.conghai.isale.biz.*.*(..))C.应为D.pointcut-ref="txAdvice"应为pointcut-ref="bizMethods" 简答题(18题)1、spring工作机制?2、为什么用Spring的工作机制?3、Jdo是什么?4、简述你对IoC(InversionofControl)的理解,5、简单描述Springframework与Struts的不同之处,整合Spring与Struts有哪些方法,哪种最好,为什么?6、Spring是什么?7、为什么要使用Spring?8、简述spring的组成?9、简述.IoC的类型?10、简述Spring容器的功能?11、什么是AOP?12、简述AOP核心?13、说出Spring的通知类型?14、简述ProxyFactoryBean的作用?15、叙述Spring对持久层支持采用的策略?16、叙述AOP事务的含义?17、如何简化事务配置?18、简述Spring的事务机制?Hibernate选择题(37题)1、一般情况下,关系数据模型于对象模型之间有哪些匹配关系?A.表对应类B.记录对应对象C.表的字段对应类的属性D.表之间的参考关系对应类之间的依赖关系2、目前在持久化层领域,实现模式有以下几种:A.业务逻辑和数据访问耦合B.主动域对象模式C.ORM模式D.JDO模式E.CMP模式3、HibernateAPI中的接口可以分为以下几类:A.提供访问数据库的操作的接口,包括session、Transaction、Query接口;B.用于配置Hibernate的接口,Configuration;C.间接接口,使应用程序接受Hibernate内部发生的事件,并作出相关的回应,包括:Interceptor、Lifecycle、Validatable;D.用于扩展Hibernate功能的接口,如UserType、CompositeUserType、IdentifierGenerator接口。 4、在Hibernate的关联映射中,单向多对一关联的映射应()。(选1项)A.配置在多的一方的映射中B.配置在单一的一方的映射中C.配置在哪一方均可,但只可在一方配置D.两方均需要配置5、在Hibernate中,实体类的映射文件用于说明实体类和数据库表的映射关系,以及实体类的属性和表字段的映射关系,每个实体类对应映射文件中一个()节点。(选1项)A.idB.classC.tableD.property6、使用Hibernate技术实现数据持久化时,下面()内容不在Hibernate配置文件中配置。(选1项)A.数据库连接信息B.数据库类型(dialect)C.show_sql参数D.数据库表和实体的映射信息7、Hibernate对JDBC访问数据库的代码作了封装,从而大大简化了数据访问层的重复性代码,它是针对三层架构中()的解决方案。(选1项)A.表现层B.业务逻辑层C.持久化层D.数据库系统8、一般情况下,关系数据模型与对象模型之间有哪些匹配关系(多选)A.表对应类B.记录对应对象C.表的字段对应类的属性D.表之间的参考关系对应类之间的依赖关系9、以下关于SessionFactory的说法哪些正确?(多选)A.对于每个数据库事务,应该创建一个SessionFactory对象B.一个SessionFactory对象对应一个数据库存储源。C.SessionFactory是重量级的对象,不应该随意创建。如果系统中只有一个数据库存储源,只需要创建一个。D.SessionFactory的load()方法用于加载持久化对象10、Customer类中有一个Set类型的orders属性,用来存放Order订单对象,在Customer.hbm.xml文件中,用哪个元素映射orders属性?A.B.C.D.11、元素有一个cascade属性,如果希望Hibernate级联保存集合中的对象,casecade属性应该取什么值?(单选)A.noneB.saveC.deleteD.save-update 12、以下哪些属于Session的方法?A.load()B.save()C.delete()D.update()E.open()F.close()13、以下程序的打印结果是什么?(单选)tx=session.beginTransaction();Customerc1=(Customer)session.load(Customer.class,newLong(1));Customerc2=(Customer)session.load(Customer.class,newLong(1));System.out.println(c1==c2);tx.commit();session.close();A.运行出错,抛出异常B.打印falseC.打印true14、以下程序代码对Customer的name属性修改了两次:tx=session.beginTransaction();Customercustomer=(Customer)session.load(Customer.class,newLong(1));customer.setName("Jack");customer.setName("Mike");tx.commit();执行以上程序,Hibernate需要向数据库提交几条update语句?(单选)A.0B.1C.2D.315、在持久化层,对象分为哪些状态?(多选)A.临时状态B.独立状态C.游离状态D.持久化状态16、对于以下程序,Customer对象在第几行变为持久化状态?(单选)Customercustomer=newCustomer();//line1customer.setName("Tom");//line2Sessionsession1=sessionFactory.openSession();//line3Transactiontx1=session1.beginTransaction();//line4session1.save(customer);//line4tx1.commit();//line5session1.close();//line6A.line1B.line2C.line3 A.line4B.line5C.line617、下程序,Customer对象在第几行变为游离状态?(单选)Customercustomer=newCustomer();//line1customer.setName("Tom");//line2Sessionsession1=sessionFactory.openSession();//line3Transactiontx1=session1.beginTransaction();//line4session1.save(customer);//line4tx1.commit();//line5session1.close();//line6A.line1B.line2C.line3D.line4E.line5F.line618、一种检索策略利用了外连结查询?(单选)A.立即检索B.延迟检索C.迫切左外连结检索19、Customer类的orders集合采用延迟检索策略,编译或运行以下程序,会出现什么情况(单选)Sessionsession=sessionFactory.openSession();tx=session.beginTransaction();Customercustomer=(Customer)session.get(Customer.class,newLong(1));tx.commit();session.close();IteratororderIterator=customer.getOrders().iterator();A.编译出错B.编译通过,并正常运行C.编译通过,但运行时抛出异常20、HQL与SQL,以下哪些说法正确?(多选)A.HQL与SQL没什么差别B.HQL面向对象,而SQL操纵关系数据库C.在HQL与SQL中,都包含select,insert,update,delete语句D.HQL仅用于查询数据,不支持insert,update和delete语句21、事务隔离级别是由谁实现的?(单选)A.Java应用程序B.HibernateC.数据库系统D.JDBC驱动程序22、悲观锁与乐观锁,哪个具有较好的并发性能?(单选)A.悲观锁B.乐观锁23、什么是ORM? 24、Hibernate有哪5个核心接口?25、关于hibernate:1)在hibernate中,在配置文件呈标题一对多,多对多的标签是什么;2)Hibernate的二级缓存是什么;3)Hibernate是如何处理事务的;26、Hibernate的应用(Hibernate的结构)?27、什么是重量级?什么是轻量级?28、数据库的连接字符串?29、事务处理?30、JDBC,Hibernate分页怎样实现?31.下面关于数据持久化概念的描述,错误的是()。A.保存在内存中数据的状态是瞬时状态B.持久状态的数据在关机后数据依然存在C.数据可以由持久状态转换为瞬时状态D.将数据转换为持久状态的机制称为数据持久化32.下面关于Hibernate的说法,错误的是()。A.Hibernate是一个“对象-关系映射”的实现B.Hibernate是一种数据持久化技术C.Hibernate是JDBC的替代技术D.使用Hibernate可以简化持久化层的编码33.Hibernate配置文件中,不包含下面的()。A.“对象-关系映射”信息B.实体间关联的配置C.show_sql等参数的配置D.数据库连接信息34.在Hibernate关系映射配置中,inverse属性的含义是()。A.定义在节点上,声明要负责关联的维护B.声明在节点上,声明要对方负责关联的维护C.定义在节点上,声明对方要负责关联的维护D.声明在节点上,声明要负责关联的维护35.在使用了Hibernate的系统中,要想在删除某个客户数据的同时删除该客户对应的所有订单数据,下面方法可行的是()。A.配置客户和订单关联的cascade属性为save-updateB.配置客户和订单关联的cascade属性为allC.设置多对一关联的inverse属性为trueD.设置多对一关联的inverse属性为false36.下面一对多关联的配置中,存在哪些错误()。A.inverse属性不可以设置为falseB.cascade属性不可设置为trueC.class="com.x.entity.Order"应为type="com.x.entity.Order"D.column属性不可再节点内设置37.下面创建Criteria对象的语句中正确的是()。 A.Criteriac=query.createCriteria();B.Criteriac=query.addCriteria();C.Criteriac=session.createCriteria();D.Criteriac=session.createCriteria(User.class);简答题(6题)1、Hibernate工作原理及为什么要用?2.Hibernate是如何延迟加载?3.Hibernate中怎样实现类之间的关系?(如:一对多、多对多的关系)4.说下Hibernate的缓存机制5.Hibernate的查询方式6.如何优化Hibernate?Ajax选择题(11题)1.AJAX术语是由哪家公司或组织最先提出的?A.GoogleB.IBMC.AdaptivePathD.DojoFoundation2.以下哪一个Web应用不属于Ajax应用?A.HotmailB.GMapsC.FlickrD.WindowsLive3.以下哪个技术不是Ajax技术体系的组成部分?A.XMLHttpRequestB.DHTMLC.CSSD.DOM4.XMLHttpRequest对象有几个返回状态值?A.3B.4C.5D.65.下列哪些方法或属性是Web标准中规定的?A.all()B.innerHTMLC.getElementsByTagName()D.innerText6.以下哪一个CSS属性不属于W3C的CSS2规范?A.list-style-positionB.min-height A.floatB.text-overflow7.下列哪个工具不能用来调试浏览器中的JavaScript?A.MSVisualInterDevB.EclipseC.MSScriptDebuggerD.MozillaVenkman8.关于JavaScript中的函数和对象,下列说法不正确的是:A.每一个函数都有一个prototype对象。B.函数就是一个特殊类型的对象。C.函数附属于它所附加到的对象上,只能通过该对象访问。D.同一个函数可以被附属到多个对象上。10.创建一个对象obj,该对象包含一个名为"name"的属性,其值为"value"。以下哪一段JavaScript代码无法得到上述的结果?A.varobj=newObject();obj["name"]="value";B.varobj=newObject();obj.prototype.name="value";C.varobj={name:"value"};D.varobj=newfunction(){this.name="value";}11.下面Ajax代码中,存在哪些错误()。varurl="?operate=doCheckUserExists&uname="+uname;xmlHttpRequest=createXmlHttpRequest();xmlHttpRequest.onreadystatechange=haoLeJiaoWo;xmlHttpRequest.open("POST",url,false);xmlHttpRequest.send(url);A.onreadystatechange应为onReadyStateChangeB.发送请求的方式应为GETC.open方法的第三个参数应该是true,因为要异步发送请求D.send方法应该传入null参数,而不是将url当作参数简答题(30题)1、XMLHttpRequest是什么?2、window.ActiveXObject是什么?3、Microsoft.XMLHTTP是什么?4、在浏览器端如何得到服务器端响应的XML数据?5、XMLHttpRequest对象在IE和Firefox中创建方式有没有不同?6、介绍一下XMLHttpRequest对象的常用方法?7、介绍一下XMLHttpRequest对象的属性?8、叙述Ajax的优点和缺点?9、什么是XML?10、叙述DWR框架?11、叙述ajax的4个基本原则? 12、为什么需要ajax的富客户端?13、ajax有什么组成,各组件作用是什么?14、写出ajax的编程六步骤?15、ajax中向服务器发送消息的get和post有什么区别?16、DWR编程三要素?17、解释AJAX?18、写出AJAX中处理从服务器得到的数据的两种方式?19、什么是JSON?20、写出JSON的具体形式?21、写出JSON的构建的结构?22、现假设有一个用户数据包括:用户名、密码、所在部门、性别、年龄。用XML表示如下: 张三 123456 技术部 男 30 用JSON表示出?23、写出JSON与XML的区别?24、为什么要用JSON?25、JavaScript中什么是prototype原型对象?26、prototype有什么作用?27、什么是Dojo?28、Dojo有以下的特征?29、写出请求的最基本的三种方式?30、叙述JavaScript的好处?WebService选择题(7题)1)在WEBSERVICE开发时,订阅者和发布者都需要和()里的实体进行交互。A.UDDIB.底层类库C.SERVICED.远程接口2)在面向RPC的Web服务中,对于Greeting远程接口来说,当定义其实现类的时候,下述代码片段下划线部分应该是()。publicclassGreetingImpimplementsA.EJBObjectB.EJBRemoteC.Remote A.Greeting3)下列关于WebServices的描述()是错误的。A.WebServices架构中有三个角色:服务请求者,服务提供者,服务注册处B.服务提供者向服务注册处发布服务的信息C.服务请求者需要向服务注册处查询其需要的服务的信息D.服务请求者需要与服务注册处绑定以消费服务4)WebServices使用基于()的标准和传输协议交换数据。A.XSLTB.XMLC.TCP/IPD.Java5、在J2EE体系架构中,客户层组件运行在()上。A.客户机B.J2EE服务器C.数据库服务器D.Web服务器6、J2EE程序可以使用()API查找服务和组件。A.RMI-IIOPB.JMSC.JDBCD.JNDI7、下列()是描述网络服务的标准XML格式。A.WSDLB.UDDIC.SOAPD.LDAP简答题(1题)1、WEBSERVICE名词解释。JSWDL开发包的介绍。JAXP、JAXM的解释。SOAP、UDDI,WSDL解释。JSF选择题(8题)1)下列()标签是JSF的核心标签。A.inputTextB.viewC.formD.inputSecret2)JSF的()标签显示一个组件的相关消息。A.h:errorB.f:messages A.h:messagesB.h:message3)JSF的ManagedBean的范围不能为()。A.requestB.pageC.sessionD.application4)下列()是正确的JSF页面代码片断。A.B.C.D.5)在JSF中,h:dataTable的value属性代表的数据类型不能为()。A.数组B.intC.java.util.ListD.java.sql.ResultSet6)设计一个JSF页面时,需要添加一个控件用于选择产品,从4中产品中唯一的选择一种,下列()标签可以用以显示产品组件。A.h:selectBooleanCheckboxB.h:selectManyCheckboxC.h:selectManyMenuD.h:selectOneRadio7)JSF与Struts的不同之处为()A.JSF没有采用MVC模式,Struts采用了MVC模式B.JSF为J2EE5.0的一个Web框架的规范,Struts为一个开源的Web框架C.Struts提供了UIComponent,而JSF没有提供D.用户可以开发可移植的Struts组件,而不能开发自定义的JSF组件8)下列()是正确的JSF代码片断。A.B.C.D. 简答题(0题)EJB选择题(45题)1.EJB是什么?(选择2项)A.EnterpriseJavaBean(企业级JavaBean)B.ExtendJavaBean(扩展JaveBean)C.一种分布式组件规范D.一种对于Servlet技术的扩展2.J2EE服务器包含哪两个部分?(选择2项)A.JavaBean容器B.EJB容器C.Web容器D.JSP容器3.EJB的优点有哪些?(选择2项)A.技术领先B.价格低廉C.性能优越D.强大的容器支持4.以下哪些服务器容器支持EJB?(选择2项)A.IISB.WebLogicC.TomcatD.Websphere5.EJB类库存在于Java的哪个版本中?(选择1项)。A.J2SEB.J2EEC.J2MED.J2NE6.要创建一个EJB,必须要至少编写哪些Java类和接口?(选择3项)A.定义远程(或业务)接口B.定义本地接口C.定义Bean接口D.编写Bean的实现7.EJB是否可以脱离容器而运行?(选择1项)A.是B.否8.CMP与BMP分别表示什么?(选择1项)A.CMP表示Bean管理持久性(Persistence),BMP表示容器管理持久性B.CMP表示容器管理持久性(Persistence),BMP表示Bean管理持久性C.CMP表示Bean管理进程(Process),BMP表示容器管理进程D.CMP表示容器管理进程(Process),BMP表示Bean管理进程 9.EJB是什么?(选择1项)[]A.服务器端产品B.服务器端组件开发架构C.特殊类型的JavaBeanD.用于实现商业逻辑10.EJB架构主要使用的设计模式是什么?(选择2项)[]A.Proxy代理B.StrategyC.Delegate委派D.ResponsibilityChain11.EJB的类型主要有什么?(选择3项)[]A.CommandBeanB.DataAccessBeanC.SessionBeanD.EntityBeanE.JavaBeanF.Message-DrivenBean12.EJB3.0中SessionBean的组成可以包括:[]A.HomeinterfaceB.AthreadclassC.RemoteinterfaceD.PrimarykeyclassE.LocalhomeinterfaceF.LocalinterfaceG.ejb-jar.xmlH.application.xmlI.Beanclass13.EJB3.0中EntityBean的组成可以包括:[]A.HomeinterfaceB.web.xmlC.RemoteinterfaceD.PrimarykeyclassE.LocalhomeinterfaceF.LocalinterfaceG.ejb-jar.xmlH.ejb.xmlI.Beanclass14.SessionBean按是否跟踪客户状态分:[]A.StateSessionBeanB.StatelessSessionBeanC.BMTSessionBeanD.CMTSessionBeanE.StatefulSessionBean15.EntityBean根据数据持久性的处理方式分:[]A.BMTEntityBean B.BMPEntityBeanC.CMPEntityBeanD.CMTEntityBean16.EntityBean的事务处理方式可采用:[]A.BMPB.BMTC.CMTD.CMP17.SessionBean和Message-DrivenBean的事务处理方式可采用:[]A.BMT和CMPB.BMT和CMTC.BMP和CMPD.BMP和CMT18.申明方式的事务处理的属性有:[]A.SupportsB.ShouldC.NotSupportedD.RequiredE.MaybeF.RequiresNewG.MandatoryH.Never19.Localinterface引入的目的是:[]A.本地客户程序才能调用EJBB.为了性能C.解决SessionBean与EnityBean之间的交互20.Message-DrivenBean的BeanClass必须实现[];beanclass中服务方法的签名是[]A.onMessageB.MessageListenerC.MessageDrivenBean21.EJBContext是EJB与EJBContainer沟通的桥梁,在EJBContext中定义了与安全相关的两个方法是[],与事务相关的三个方法是[],与定时服务相关的方法是[]。A.getEJBLocalHomeB.getRollbackOnlyC.getCallerPrincipalD.getEJBHomeE.isCallerInRoleF.setRollbackOnlyG.getTimerServiceH.getUserTransaction22.有状态SessionBean的beanclass中实现了两个方法[]和[]用来完成状态的swapin/out。A.ejbActivate()B.ejbCreate()C.ejbPassivate()D.ejbLoad() E.ejbStore()F.ejbPostCreate()23.EntityBean的beanclass中实现了两个方法[]来同步内存与数据库的数据。A.ejbActivate()B.ejbCreate()C.ejbPassivate()D.ejbLoad()E.ejbStore()F.ejbPostCreate()24.在EntityBean的关系管理中,[]关系需要casecadedelete(级连删除),[]不能用级连删除。A.Aggregation聚合B.Composition组合25.在编写Message-DrivenBean的实践中,我们使用如下的编程努力来防止有毒消息的产生[]A.用Container管理事务B.用Bean管理事务C.不抛出异常D.只抛出RuntimeException26在weblogic(相当于JBOSS或GLASSFISH)上可以部署的模块有[]A.JavabeanmoduleB.WebmoduleC.EnterpriseapplicationmoduleD.EJBmoduleE.Resourceadaptermoudle27.weblogic与EJB相关的部署描述文件有[]A.ejb-jar.xmlB.weblogic-ejb-jar.xmlC.weblogic.xmlD.weblogic-cmp-rdbms-jar.xml28、下列()接口定义了允许用户创建EJB的方法。A.EJBObject接口B.local接口C.remote接口D.home接口29、消息驱动Bean通常的动作象一个()。A.事件侦听器B.JMS消息侦听器C.Swing的按钮D.实体Bean30、下列()是错误的描述。A.EJB组件具有可移植性B.EJB容器提供了事务管理、安全性、状态管理和持久性服务C.EJB简化了分布式计算D.d)JavaBean是可部署组件31、下列()角色的职责是创建Web模块或EJB组件。A.部署者 A.应用程序组件提供者B.J2EE产品厂商C.d)工具提供者32、下列()描述EJB的相关信息,例如持久化类型和事务属性等。A.Bean类文件B.远程接口C.本地接口D.部署描述符33、在实体Bean的生命周期中,只有在()方法成功完成后,ejbPostCreate()方法才能被调用。A.ejbActivate()B.ejbPassivate()C.ejbCreate()D.ejbRemove()34.EJB是什么?:A.服务器端产品B.服务器端组件开发架构C.特殊类型的JavaBeanD.用于实现商业逻辑35.EJB架构主要使用的设计模式是:A.ProxyB.StrategyC.DelegateD.ResponsibilityChain36.EJB的类型主要有:A.CommandBeanB.DataAccessBeanC.SessionBeanD.EntityBeanE.JavaBeanF.Message-DrivenBean37.SessionBean按是否跟踪客户状态分:A.StateSessionBeanB.StatelessSessionBeanC.BMTSessionBeanD.CMTSessionBeanE.StatefulSessionBean38.EntityBean根据数据持久性的处理方式分:A.BMTEntityBeanB.BMPEntityBeanC.CMPEntityBeanD.CMTEntityBean39.EntityBean的事务处理方式可采用:A.BMPB.BMTC.CMT D.CMP40.SessionBean和Message-DrivenBean的事务处理方式可采用:A.BMT和CMPB.BMT和CMTC.BMP和CMPD.BMP和CMT41.Localinterface引入的目的是:A.本地客户程序才能调用EJBB.为了性能C.解决SessionBean与EnityBean之间的交互42.Message-DrivenBean的BeanClass必须实现_________和________;beanclass中服务方法的签名是_________。A.onMessageB.MessageListenerC.MessageDrivenBean43.对于SessionBean和EntityBean,无论是remotehome或是localhome都必须定义create方法,该方法都会抛出的异常是_______,remotehome中create方法还会抛出异常________。EntityBean的homeinterface中findByPrimaryKey必须抛出异常________。A.FinderExceptionB.RemoteExceptionC.CreateException44.SessionBean的homeinterface中可定义:A.createmethod(s)B.Homemethod(s)C.findermethod(s)D.ejbSelectmethod(s)45.EntityBean的homeinterface中可定义:A.createmethod(s)B.Homemethod(s)C.findermethod(s)D.ejbSelectmethod(s)简答题(11题)1,EJB与JAVABEAN的区别?2、EJB的角色和三个对象3、EJB容器提供的服务4、EJB规范规定EJB中禁止的操作有哪些?5、remote接口和home接口主要作用6、bean实例的生命周期7、EJB的激活机制8、EJB的几种类型9、客服端调用EJB对象的几个基本步骤10、EJB的基本架构是什么? 11、EJB是基于哪些技术实现的?并说出SessionBean和EntityBean的区别,StatefulBean和StatelessBean的区别。WEB服务器选择题(3题)1、Tomcat5.0是一个()容器。A.EJBB.JSP/ServletC.AppletD.Swing组件2、如果想在tomcat服务器启动时将jar包加载到内存,且该jar包可以被tomcat服务器上所有的应用使用,应该将该jar包复制到tomcat的()目录。A.common B. serverC.commonlib D. serverlib3、Tomcat服务器的默认端口为()。A.8888 B. 8001C.8080 D. 80简答题(12题)1、应用服务器有那些?2、如何给weblogic指定大小的内存?3、EJB需直接实现它的业务接口或Home接口吗,请简述理由。5、如何设定的weblogic的热启动模式(开发模式)与产品发布模式?6、如何启动时不需输入用户名与密码?7、在weblogic管理制台中对一个应用域(或者说是一个网站,Domain)进行jms及ejb或连接池等相关信息进行配置后,实际保存在什么文件中?8、说说weblogic中一个Domain的缺省目录结构?比如要将一个简单的helloWorld.jsp放入何目录下,然的在浏览器上就可打入http://主机:端口号//helloword.jsp就可以看到运行结果了?又比如这其中用到了一个自己写的javaBean该如何办?9、在weblogic中发布ejb需涉及到哪些配置文件10、如何在weblogic中进行ssl配置与客户端的认证配置或说说j2ee(标准)进行ssl的配置11、如何查看在weblogic中已经发布的EJB?12、说说在weblogic中开发消息Bean时的persistent与non-persisten的差别13、什么是web容器 XML选择题(70题)1.关于XML声明正确的是(选择1项)A.B.C.D.<%xmlversion=”1.0”%>2.关于XML的叙述不正确的是(选择1项)A.XML各元素不需要正确的嵌套B.每个XML只有一个根元素C.XML文档不可以任意开始D.XML区分大小写3.一个XML不一定必须有DTD或Schemas(选择1项)A.正确B不正确4.以下说法错误的是()(选择1项)A.样式表是描述文档结构的文档B.CSS可以用于XMLC.XSL不是根据DTD的语法进行定义的D.DTD符合XML语法5.标记性语言是一系列的规则,这些规则只影响文件的内容而不影响文件的结构(选择1项)A.正确B.错误6.以下说法不正确的是(选择1项)A.DTD定义了XML文档中包含的标记、元素、元素类型以及属性B.DTD可以包含在XML文档内,也可以在XML文档外定义C.命名空间能够区别不同源的元素、属性的定义D.一个结构完整的XML文档一定是合法的XML文档7、下面是一个XML文件的代码片断“book.dtd”是()。A.内部DTDB.外部DTDC.实体D.元素8、下面是XML文件的代码片断:Course1属性type的命名空间是()。 A.academicB.xmlsnsC.http://www.aptech.edc.acD.XML9、在XML文档对象模型中,下面()对象代表XML文档的根。A.DOMDocumentB.DOMNodeC.DOMElementD.DOMText10、XSLT处理器的输入是()。A.XML文档和XML解析器B.XML文档和XSL样式表C.XML文档和XSLTDXSL样式表和XSLT11、在XMLSchema中,使用()和()标记指定元素和属性。A.B.C.D.12、下面关于XML数据岛的描述正确的是()。A.数据岛就是被HTML页面引用或包含的XML数据B.数据岛只能引用来自外部XML文件中的数据C.从数据岛读取数据是利用元素的NAME属性来完成的D.数据岛通过那么引用XML数据元素name的HTML文本框的代码可以写为()。A.B.C.D.14、在XML的Schema中,用于限制元素出现次数的element属性有()。A.maxExclusiveB.minExclusive A.minOccursB.maxOccurs15、在XML中,下列关于XPath的说法不正确的是()。A.XPath不是用XML书写的B.如果把XML文档当作数据库,那么XPath就相当于SQLC.XPointer依赖于XPathD.XPath可以定义XML文档间的链接关系16、下面的DTD文件中定义了一个XML文档的部分结构:与该DTD定义的结构最相似的Schema是()。a)b)c)d) 17、如果一个XML文档存在以下()情况,我们称它为无效的xml文档。(选择两项)A.没有遵守XML规范定义的语法规则。B.遵守XML语法,但没有定义DTD或Schema。C.定义了DTD或Schema,但没有遵守DTD或Schema中定义的规则。D.定义的DTD或Schema不符合语法规范。18、Hello,World!上面的XML文档属于()文档。(选择一项)A.无效的B.有效的C.格式良好的D.格式错误的19、以下的xml文档片段中,属性符合XML语法规则的是()。(选择两项)A.B.C.D.20、]>jack&location;关于上述Xml文档,以下描述正确的是()。(选择一项)A.该Xml文档中使用了外部DTD。B.通过浏览器打开上述Xml文档时,字符串jianwaistreet代替了&location;C.该Xml文档不是有效的XML文档。D.该Xml文档中的location为参数实体。21、Mrs.LordoftheRings上述是一段关于XML命名空间的实例片段,以下说法错误的是()。(选择一项)A.本例中,命名空间的前缀分别是addr、books A.第一个元素属于addr名称空间,因为其父元素属于该名称空间。B.名称空间中定义的字符串必须是可以访问的URL,比如:XML解析器会到http://www.zyx.com/books/去搜索DTD或schema22、给定一段DTD片段(保存于d:dtdsroot.dtd):假定XML文档中已有如下声明:。下面()段XML文档片段能够针对给定的DTD内容成功通过验证。(选择两项)a)b)c)d)23、以下关于xslt说法不正确的是()。(选择一项)A.Xslt是xsl的一部分,有独立的命名空间。B.Xslt可以把xml文档转换为xhtml。C.要执行xslt转换,只需要xml文档,xslt样式表和浏览器就可以了。D.Xslt使用xpath对xml文档进行导航。 24、Report.xml中包含subject元素,该元素可以包含某HTML标记,如下:2008年北京奥运会展望现需要编写一个XMLschema来定义该xml文档内容的结构,以下的schema片断中,()可以使Report.xml通过有效性验证。(选择两项)a)b)c)d)25、()属性指定元素最多出现的次数。(选择一项)A.minOccursB.maxOccursC.minExclusiveD.maxExclusive26、某新闻网站新闻量较大,并且新闻需要被即时发布。该网站可以通过各种浏览器和手持设备访问。网站后台是一个基于xml的应用系统,该系统把数据库中数据读取到xml文档中,并使用DOM进行解析。使用以下()方法可以提高后台应用系统的性能,从而提高该网站的性能。(选择一项)A.把xml文档转化成html网页。B.使用SAX解析xml文档。C.不经解析,把xml文档直接发送给浏览器。D.使用样式表对xml文档进行转换。27、某公司决定使用xml文档和客户进行数据交换,当设计XML文档结构时,以下的因素中,需要设计人员考虑的是()。(选择两项)A.每次传递数据的大小。B.发送xml文档需要采用的协议。C.解析xml文档的解析器。 A.是否需要处理二进制数据。28、要定义一个数据类型,既可能包含integer类型的值,也可能包含string类型的值,以下schema片段正确的是()。(选择一项)a)b)c)d)29、已知xslt片段:,test语句的返回值是()。(选择一项)A.true A.falseB.不存在roundOff函数。C.以上都不是。30、已知xml文档包含如下内容(list为根元素):1815
使用xslt进行转换时,语句能够匹配到()个item元素。(选择一项)A.3B.2C.1D.031、可扩展样式表语言(XSL)用来定义XML文档的显示语义,XSL包括三个部分,除了()。(选择一项)A.XSLTB.XPathC.XSL-FOD.CSS32、XML是一种元语言,可以用它来描述其他语言,这个说法()。(选择一项)A.正确B.错误33、假定元素为XML文档的根元素,这表明()。(选择两项)A.根元素下的子元素可以自定义B.对于一个格式正规的XML文档,根元素必须是预定义的标记C.对于一个合法的XML文档,根元素必须是预定义的标记34、以下正确的是()。(选择三项)A.DTD定义了XML文档中包含的标记、元素、元素类型以及属性B.DTD可以包含在XML文档内,也可以在XML文档外定义C.命名空间能够区别不同源的元素、属性的定义D.一个结构完整的XML文档一定是合法的XML文档35、关于DOM的描述错误的是()。(选择两项)A.DOM模型是W3C组织开发出来的一个在内存中表示XML数据的线性模型B.只能使用JavaScript进行DOM开发,而不能使用Java、C#C.W3C组织公布了DOM模型的规范,然后各个软件厂商(比如微软)再根据W3C的规范开发DOM解析器,并且提供一系列的编程API,这些API都是遵守W3C规范的 A.DOM使开发者能够以编程方式读取、操作和修改XML文档36、关于createNode方法说话正确的是()。(选择两项)A.当一个节点创建后,该节点将属于创建节点时所提到的命名空间B.在创建节点时通过传递null参数使得该节点可以没有名称C.如果创建的节点没有指定命名空间URI,那么该节点的命名空间和其父节点的命名空间一致D.如果创建的节点没有指定命名空间URI,那么该节点的命名空间将为默认命名空间37、下列XML文档是否正确()。(选择一项)A.正确B.错误38、代码段1:代码段2:关于代码段1和代码段2的描述正确的是()。(选择一项)A.代码段1定义的数据类型为简单类型,代码段2定义的数据类型应该为复杂数据类型,因此代码段2的定义是错误的B.代码段1定义的数据为整型数据,数据的取值范围为小于等于0或者大于等于100C.代码段2定义的元素为简单类型,该元素取值在日期类型列表中选择39、以下说法错误的是()。(选择三项)ACDA.样式表是描述文档结构的文档B.DTD不符合XML语法C.XSL根据DTD的语法进行定义的,是DTD的扩展D.CSS最早是针对XML提出来的,现在也可以用于HTML40、以下XML文档是否有效()。(选择一项)JoeJohnReminderDontforgetmethisweekend!A.有效B.无效41、以下说法正确的是()。(选择两项) A.#CDATA标记表示该元素包含的数据将被解析器解释B.#PCDATA标记表示该元素包含的数据将不被解析器解释C.#PCDATA标记表示该元素包含的数据将被解析器解释D.#CDATA标记表示该元素包含的数据将不被解析器解释42、阅读下面XML文档,然后判断下列说法正确的是()。(选择一项)tom12A.是元素对象,同样也是文本对象B.是元素对象,同样也是文本对象C.tom是元素对象D.tom是文本对象43、下列关于上述DTD声明的描述错误的是()。(选择一项)A.与ex2.dtd关联的文档里需要一个或者多个元素存在B.poem就是文档元素名称,该名称是必须的C.SYSTEM定位将会被间接引用,用来指明DTD的位置,因此它必须使用URI引用的URL形式或者文件系统路径定位44、以下表示font-weight的属性有()。(选择三项)A.NormalB.SmallcapsC.BolderD.Lighter45、关于CSS的描述错误的是()。(选择一项)a)可以利用CLASS来定义CSS样式b)在XML中引用CSS指令c)可以在CSS中,将一组属性应用于多个元素d)可以在CSS中,直接定义某一个标记的各种属性值46、关于上述DTD定义的描述正确的是()。(选择一项)a)Customer元素能包含子元素,并且能为空b)Customer元素能包含文本,并且能为空c)Customer元素不能包含文本,也不能包含子元素d)Customer元素的所有实例的“称呼”属性必须有值,不能为空47、VivianRichards 7626276关于上述XML文档的描述正确的是()。(选择一项)A.上述文档不支持英文字符编码B.上述文档是有效的XML文档C.上述文档不是格式正规的XML文档D.上述文档不是有效的XML文档,而是格式正规的XML文档48、books.xml文件Carson31.9505/01/2001MSPressWADOM编程代码varxmlDoc=newActiveXObject("Msxml2.DOMDocument.4.0");varcurrNode;xmlDoc.async=false;xmlDoc.load("books.xml");currNode=xmlDoc.documentElement.childNodes.item(0).baseName;window.alert(currNode);关于以上代码的描述正确的是()。(选择一项)A.以上代码将异步装载books.xml文件B.以上代码将显示booksC.以上代码将显示book49、以下说法正确的是()。(选择两项)A.可以通过DOM编程来访问XML文档B.DOM为开发者提供了一些编程接口,开发者能够使用实现了DOM接口的编程语言来操纵这些接口以访问XML文档C.如果一种编程语言没有实现DOM接口,开发者依然可以通过这些接口来访问XML文档D.以上都不正确50、下列说法错误的是()。(选择一项)A.XSL在转换XML文档时分为明显的两个过程:首先转换文档结构,然后将文档格式化输出B.XSLT包含XSL和XPath的强大功能,从而可以把XML文档转换成任何一种其它格式的文档 A.如果将XML文档看作一个数据库,XPath就是SQL查询语言B.如果将XML文档看成DOS目录结构,XPath就是cd、dir等目录操作命令的集合51、以下声明正确的是()。(选择两项)A.B.C.D.<%xml-stylesheettype="txt/css"href="abc.css"%>52、以下关于XSL的标记正确的是()。(选择两项)A.B.C.D.53、标记性语言是一系列的规则,这些规则强加在文件的内容和结构上。这个说法()。(选择一项)A.正确B.错误54、下列说法错误的是()。(选择一项)A.IXMLDOMNode表示根节点,这是处理XML对象模型数据的基本接口,这个接口还包含了对数据类型、名称空间、DTD、schema的支持B.Schema从字面意义上来说,可以翻译成架构,它的基本意思是为XML文档制定一种模式C.Schema相对于DTD的明显好处是XMLSchema文档本身也是XML文档,而不是像DTD一样使用自成一体的语法D.在Schema中,通过对元素的定义和元素关系的定义来实现对整个文档性质和内容的定义的55、关于XML声明正确的是。(选择1项)A.B.C.D.<%xmlversion=”1.0”%>56、在XML中用于注释的符号是。(选择1项)A.B.----?>C.<%%>D.57、关于XML的叙述正确的是。(选择1项)A.XML文档可以任意开始B.每个XML可以有多个根元素C.XML各元素要正确的嵌套D.XML不区分大小写58、一个XML必须有DTD或Schemas。(选择1项)A.正确B.不正确59在DTD中对于元素属性,下列哪一个表示可加可不加。(选择1项)A.FIXEDB.IMPLIED A.REQUIREDB.DATA60、以下声明正确的是。(选择2项)A.B.C.D.<%xml-stylesheettype="txt/css"href="abc.css"%>61、以下关于XSL的标记正确的是。(选择2项)A.B.C.D.62、标记性语言是一系列的规则,这些规则强加在文件的内容和结构上。(选择1项)A.正确B.错误63、XML是一种元语言,可以用它来描述其他语言。(选择1项)A.正确B.错误64、以下正确的是。(选择3项)A.DTD定义了XML文档中包含的标记、元素、元素类型以及属性B.DTD可以包含在XML文档内,也可以在XML文档外定义C.命名空间能够区别不同源的元素、属性的定义D.一个结构完整的XML文档一定是合法的XML文档65、关于DOM的描述错误的是。(选择2项)A.DOM模型是W3C组织开发出来的一个在内存中表示XML数据的线性模型B.只能使用JavaScript进行DOM开发,而不能使用Java、C#C.W3C组织公布了DOM模型的规范,然后各个软件厂商(比如微软)再根据W3C的规范开发DOM解析器,并且提供一系列的编程API,这些API都是遵守W3C规范的D.DOM使开发者能够以编程方式读取、操作和修改XML文档66、关于XSLT的叙述错误的是。(选择1项)A.它可以使用自己的XML信息,为其它用户合成新的数据实例B.不可以将数据以简单文本方式传递给其它系统C.可以直接从数据源生成HTML/CSS网页D.用户可以用多种方式应用数据67、对于内部DTD文档,哪一个是错误的。(选择1项)A.它定义的文档类型只能应用在XML中,其它的XML文档不能使用B.不能放在XML数据之后C.可以放在XML声明之前D.可以在XML声明中,加入standalone=”yes”69、DTD与XMLSchema都是XML文档。(选择1项)A.正确B.不正确70、对于Schema,一个XML文件可以有多个对应的Schema。(选择1项)A.正确B.不正确 简答题(3题)1、xml有哪些解析技术?区别是什么?2、你在项目中用到了xml技术的哪些方面?如何实现的?3、XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式?其他相关OOAD选择题(60题)1、在面向对象的分析与设计中,下列关于建模的必要性,说法错误的是()。(选择一项)A.模型有助于指定系统的结构或行为B.模型可以记录已经作出的决策C.模型有助于实现系统更改,从而增强功能和得到认可D.小型系统不需要建模2、在面向对象的分析与设计中,下列关于建模的原则,说法正确的是()。(选择一项)A.选择什么样的模型与要解决的问题没有关系B.一般情况下,单个模型都能满足要求C.最佳模型与显示情况是紧密相连的D.每一种模型都有特定的精度级别3、在面向对象的分析与设计中,下列()不属于UML图。(选择一项)A.用例图B.类图C.时序图D.活动图E.视图4、在面向对象的分析与设计中,下列()不属于标识候选类的方式。(选择一项)A.排除冗余类B.去除无关类C.排除模糊类D.排除抽象类5、在面向对象的分析与设计中,下列()不属于类之间的关系。(选择一项)A.关联B.泛化C.依赖D.多态E.聚合6、在面向对象的分析与设计中,下列关于各种UML图,说法正确的是()。(选择一项)A.借助时序图、状态图、活动图可以描述系统的动态模型B.时序图显示对象在生命周期内响应外部事件和消息时所经历的状态序列C.状态图着重于多个事物的描述 A.活动图是按时间顺序模拟控制流程7、在面向对象的分析与设计中,下列关于关键抽象的说法,错误的是()。(选择一项)A.关键抽象强调与系统设计有关的实体B.关键抽象的抽象层次越高越好C.关键抽象排除系统外部多于地实体D.关键抽象将成为分析模型中的类8、在面向对象的分析与设计中,下列关于用例图的说法,错误的是()。(选择一项)A.用例图有助于将重点放在系统可能的用户上B.用例图有助于确定用户与系统交互时扮演的角色C.在用例图中,用圆形表示系统边界D.用例之间的关系包括扩展关系,包含关系9、在面向对象的分析与设计中,下列()不属于UML的应用开发领域。(选择一项)A.信息系统B.技术系统C.业务系统D.导弹系统10、在面向对象的分析与设计中,下列关于UML图的优点说法不正确的是()。(选择一项)A.图形符号可以展示和表达系统的概观B.为规划中的系统精密且明确的建模C.使用UML构建的模型与语言相关D.帮助完成从软件项目开始至交付过程中的所有归档11、在面向对象的分析与设计中,下列关于OOA与OOD说法错误的是()。(选择一项)A.OOA是指依照用户理解的真实世界中的对象和概念,发现和分析对象的内部构成和外部关系B.OOA着眼于OOD的技术细化C.OOD是指根据以建立的系统对象模型,运用面向对象技术,进行软件设计D.OOA、OOD有助于处理软件开发的复杂性12、在面向对象的分析与设计中,关于用RationalXDE绘制时序图的说法正确的是()。(选择三项)A.事件事由水平线描述的B.对象是由垂直线描述的C.从下到上的事件发生顺序来描述事件D.时间是从顶部开始沿垂直分析描述的13、在面向对象的分析与设计中,下列关于类之间的泛化关系,说法正确的是()。(选择两项)A.泛化是类之间的一种连接,泛化总是双向的B.面向对象中的继承关系在UML中称为泛化C.泛化是指从抽象类得到子类D.被泛化的类称为子类,得到的类称为超类14、在面向对象的分析与设计中,下列关于类之间的聚合与组合关系,说法正确的是()。(选择两项)A.聚合标明一种长期关系,限制条件事某个对象是另一个对象的组成部分B.在组合关系中,没有整体,部分也没有存在地价值C.在聚合关系中,没有整体,部分也没有存在地价值D.组合是关联的一种特殊形式15、在面向对象的分析与设计中,关于接口与实现说法错误的是()。(选择一项) A.一个类只能实现一个接口B.一个接口可以被多个类实现C.类和接口之间的关系称为实现D.接口是用于指定类或组件服务的操作的集合16、下列哪些语言用于知识和神经网络范例的软件开发?[选择二项]A.Java。B.RETE++。C.CLIPS。D.Simula。17、下面哪三项属于SDLC的阶段?A.需求产生。B.系统测试。C.需求分析。D.可行性研究。18、关于软件开发生命期的“可行性”研究阶段,下列叙述中哪两项正确?A.在这个阶段,分析人员和用户密切合作。B.在经济上或财政上系统是否划算。C.鉴别具有数据元素的数据输入屏幕。D.一旦安装软件,用户将如何有效地操作这个软件。19、叙述1:在对象生命期中,可以有一个初始状态和一个和多个终止状态。叙述2:在对象生命期中,只能有一个初始状态和一个终止状态。 [选择一项]A.叙述1是错误的并且叙述2是正确的B.叙述2是错误的并且叙述1是正确的C.两个叙述都是正确的D.两个叙述都是错误的20、叙述1:知识和神经网络范例仍处于试验阶段。叙述2:知识和神经网络范例已经能适用于商业和技术领域。[选择一项]A.两个叙述都正确。B.叙述1正确,叙述2错误。C.叙述2正确,叙述1错误。D.两个叙述都错误。21下面哪三项是OOAD的优势?A.对象的重新利用加速了设计和开发过程。B.减少了错误和维护问题。C.可使用已有对象轻松创建新应用程序。D.用OOAD生成应用程序永远不会失败。22、下面OOA和OOD的区别中哪两项正确?A.在OOA中,程序组织为对象的合作集合,而在OOD依据现实世界的对象和概念开发被用户理解并且准确而简洁的问题模型。B.在OOD中,程序组织为对象的合作集合,而在OOA依据现实世界的对象和概念开发被用户理解并且准确而简洁的问题模型。C.OOD的重点在于,在确保包含全部需求的前提下使提供的解决方案达到最优,而且OOD着眼于OOA的细化。 23、下列与UM下列的关于UML的叙述中哪三项是正确的?A.是面向对象方法用来表达系统设计的图形符号。B.已经在小的模型中而不是复杂系统中证明成功。C.可在用户、分析人员、设计人员和软件开发人员之间建立一个轻松自在的对话。D.用于可视化、具体化、结构化和文档化软件内在系统的不同方面的语言。E.只用于系统开发的设计阶段。24、系统建模的目的在于哪三项?A.模型将可视化一个系统,就象它的真实所在或者用户所希望的那样。B.模型使计算机程序与人的思维更加接近。C.模型为构造系统的开发者提供模板。D.模型允许指定系统的结构和行为。E.模型对功能进行分解的设计。25、组成静态视图的UML视图表现了系统的行为模式。A.正确。B.错误。26、下列与使用案例相关的叙述哪三项是正确的?A.在系统中,每个脚本都被看作是使用案例B.每个脚本中的用户都被不看作是“行动者”(Actor)。C.一个实际用户可以扮演多种角色。D.行动者是与系统交互的其他系统。E.一位行动者不必是一个人或用户。行动者可以是系统外部与系统进行交互的任何事物。27、下面哪三项是使用案例的优点?A.关注系统可能的输出。B.服务的来源,并帮助确定系统必须实现的类。C.在简单系统中,依据所建立的需求提供系统分析的出发点。D.交互作用有助于描述系统的功能。E.以系统与一个或多个行动者之间的一系列交互作用表示具体的需求。28、下面哪两项引发使用案例的定时器事件?A.每笔定期存款到期后自动转存。B.在到期前定期存款终止。C.月末。D.定期存款到期。29、使用案例是系统与行动者之间交互的文本描述。A.正确。B.错误。30、使用案例模型只能在一个使用案例示图中解释。A.正确。B.错误。31、叙述1:结构实体可以理解为系统与之交互的物理实体。叙述2:从一个帐户向另一个帐户转帐是结构实体的示例。A.两个叙述都错误。B.两个叙述都正确。C.叙述1正确,叙述2错误。D.叙述1错误,叙述2正确。32、叙述1:软件系统中的对象不直接存在于现实生活中。 叙述2:在问题领域中很难识别类和对象。A.两个叙述都错误。B.两个叙述都正确。C.叙述1正确,叙述2错误。D.叙述1错误,叙述2正确。33、类可以从如下哪三项内容中识别A.应用专家。B.用户。C.使用案例。D.需求陈述。E.程序员。34、下面与类的私有属性相关的陈述哪三项是不正确的?A.可从类的外部访问。B.不能从类的外部访问。C.由超类继承而来。D.私有属性的前缀为“+”号。E.私有属性的前缀为“-”号。35、每个聚集不可以由其他聚集构成。A.正确。B.错误。36、SDLC代表____________________________.A.SystemDevelopmentLifeCycle(系统开发生命期)B.SoftwareDevelopmentLifeCycle(软件开发生命期)C.SystemDesignLifeCycle(系统设计生命期)D.SoftwareDesignLifeCycle(软件设计生命期)37、需求分析阶段最后形成的详细文档叫需求规范A.正确B.错误38、在一个典型的SDLC过程中如何分配工作量?a)设计和分析40%开发40%测试20%b)设计和分析30%开发50%测试20%c)设计和分析50%开发30%测试20%d)设计和分析50%开发40%测试10%39、________________是按照对象的协作集合组织解决方案的阶段,每一个对象代表类的一个实例,它们通过继承关系联合在一起。A.SDLC A.OOPB.OODC.OOA40、面向对象分析和设计有助于处理软件开发的复杂性和生成适应性强的有弹性的软件系统。A.正确B.错误41、UML代表____________________________.A.UniqueModelingLanguage(独立建模语言)B.UnifiedMarkupLanguage(统一标记语言)C.UniversalModelingLanguage(通用建模语言)D.UnifiedModelingLanguage(统一建模语言)42、在分析的初期过程期间,系统地阐述的几个类称作候选类。A.正确B.错误43、用来描述模型的语言叫做“建模语言”。A.正确B.错误44、如果存在多个类定义同样实体的情况,那么这些类称作冗余类。A.正确B.错误45、如果属性的可见性是____________,那么属性的行为类似于private属性,但是可通过基类继承的。A.PublicB.ProtectedC.LocalD.Global46、在同类的对象之间发生的关系称为_____________?A.递归关联B.相关关联C.冗余关联47、叙述A:聚合是将组成部分组合在一起获得所需实体的过程。叙述B:关联在另一个角度来说是实体之间的联系。A.叙述1错误,叙述2正确。B.叙述1正确,叙述2错误。C.两个叙述都正确。D.两个叙述都错误。48、鉴别器是一个特征,它是子类创建的基础。A.正确B.错误49、使用一般化原理共享属性和操作的机制称为继承。A.正确B.错误50、叙述1:内部事件从系统内部触发,它们由一个对象在另一个对象中触发。叙述2:外部事件从系统范围之外触发。A.叙述1错误,叙述2正确。 A.叙述1正确,叙述2错误。B.两个叙述都正确。C.两个叙述都错误。51.用例模型的基本组成部件是。(选择3项)A.用例B.角色C.系统D.动作52.不属于用例之间的关系有。(选择1项)A.通用B.扩展C.使用D.组合53.序列图描述对象是如何交互的并且将重点放在消息序列上。(选择1项)A.正确B.不正确54.活动图显示动作及其结果。着重描述操作实现中所完成的工作以及用例实例或类中的活动。(选择1项)BA.正确B.不正确55.UML语言支持的建模方式有。(选择3项)A.静态建模B.动态建模C.模块化建模D.功能性建模56.下列各种图可用于动态建模的有。(选择3项)A.状态图B.类图C.序列图D.活动图57.下列不是常见的模型元素间的关系有。(选择1项)A.关联B.聚合C.依赖D.笔记58.下列属于状态的组成部分的有。(选择2项)A.名称B.活动C.条件D.事件59.属性的可见性有。(选择3项)A.公有的B.私有的C.私有保护的D.保护的 60.UML中包括的事件有。(选择3项)A.条件成真B.收到另一对象的信号C.收到操作调用D.函数调用简答题(0题)Other选择题(11题)1)在J2EE中有个容器的概念,下面对容器的陈述正确的是:A.容器不提供事务服务。B.容器为组件提供运行时的服务。C.容器还提供安全管理。D.容器是一种J2EE运行时的组件。2)基于组件的N层体系结构和传统的二层、三层、N层的不同点是:A.基于组件的N层体系中,单一的中间层应用对象已被能相互交流的若干个组件所代替。B.传统的两层体系,商业逻辑在所有的客户上都有,因此,在所有的客户上安装和保持一致变得十分重要。C.三层结构系统使得表达逻辑和商业逻辑被分开。D.在传统的N层体系中,单一的中间层应用对象已被能相互交流的若干个组件所代替。3)假设sample.xml文档有一个元素是,它有个子元素是。我们已经获得了Document对象doc,取出第一个的第一个子元素的值的代码是:A.((Element)doc.getElementsByTagName("PERSON").item(0)).getNodeValue();B.((Element)doc.getElementsByTagName("PERSON").item(0)).getElementsByTagName("NAME").item(0).getFirstChild().getNodeValue();C.((Element)doc.getElementsByTagName("PERSON").item(0)).getElementsByTagName("NAME").item(0).getNodeValue();D.((Element)doc.getElementsByTagName("PERSON").item(0)).item(0).getNodeValue();4)在J2EE中,对于PreparedStatement的方法setInt(intI,intx)描述正确的是()。[选择一项]A.使得第i个参数的值设为xB.设置第i个参数,同时设置第x个参数C.将第x个参数赋值为iD.将第i个参数赋值为x5、J2EE应用开发生命周期的三个阶段是()。(选择三项)A.开发B.测试C.打包D.部署E.配置6、在J2EE中,通过调用以下()方法,可以装载Sun的JDBC-ODBC桥。(选择一项)A.class.forname(“sun.jdbc.odbc.JdbcOdbcDriver”);B.class.forName(“sun.jdbcodbcDriver”); A.Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);B.Class.forname(“sun.jdbc,jdbcOdbcDriver”);7、要完成一个信息系统开发,分析人员、设计人员和用户的分工与协作是必不可少的。在这些人员当中,设计人员的职责是()。(选择两项)A.研究用户的需求并定义问题域B.信息系统的测试和使用C.确定所开发系统的硬件和软件的需求D.依据数据库结构、屏幕、表单和报表设计系统8、下面使用DWR的代码中,()存在错误。functioncheckUserExists(uname){JUserChecker.check(haoLeJiaoWo);//A}functionhaoLeJiaoWo(isExist){//Bif(isExist==1){//Calert("用户名已存在!");//D}elseif(isExist==0){alert("用户名不存在!");}}A.A处B.B处C.C处D、D处9、J2EE应用的发布文件的扩展名为()。A..zipB..jarC..warD..ear10、下列有关SAX,正确的描述为()。A.可以对文档进行随机访问B.可以读取和写入XML文档C.文档只能遍历一次D.d)SAX基于对象模型11、在SAX中,()事件是在文档的起始处被激发的。A.endElement()B.startElement()C.endDocument()D.startDocument()简答题(5题)1.什么是JNDI2.什么是JMS3.什么是JTA4.开发中都用到了那些设计模式?用在什么场合? 5.、j2ee常用的设计模式?说明工厂模式。 答案第一部分:选择题1)哪个不是面向对象的特征(d)d)健壮性2)编译JAVA文件的命令是(b)。b)Javac3)JAVA源文件的扩展名是(c)。c)java4)JAVA内部使用的编码格式是(C)。c)UNICODE5)下列变量名称不合法的是(d)d)34#bc56)下边对基本数据类型的说明正确的是(c)c)JAVA中一共有4类8种基本数据类型7)下列不是JAVA关键字的是(c)c)count8)下列变量声明中正确的是(c)c)Intnumber=59)publicvoidgo(){Stringo="";z:for(intx=0;x<3;x++){for(inty=0;y<2;y++){if(x==1)break;if(x==2&&y==1)breakz;o=o+x+y;}}System.out.println(o);} 程序的执行结果是(c)c)00012010)classPayload{privateintweight;publicPayload(intw){weight=w;}publicvoidsetWeight(intw){weight=w;}publicStringtoString(){returnInteger.toString(weight);}}publicclassTestPayload{staticvoidchangePayload(Payloadp){/*insertcode*/}publicstaticvoidmain(String[]args){Payloadp=newPayload(200);p.setWeight(1024);changePayload(p);System.out.println("pis"+p);}}Insertcode处写入哪句话,可以使程序的输出结果是420(a)a)p.setWeight(420);11)voidwaitForSignal(){Objectobj=newObject();synchronized(Thread.currentThread()){obj.wait();obj.notify();}}这个程序片段的运行结果是什么(b)b)ThiscodecanthrowanIllegalMonitorStateException.12)publicclassThreads2implementsRunnable{publicvoidrun(){System.out.println("run.");thrownewRuntimeException("Problem");}publicstaticvoidmain(String[]args){Threadt=newThread(newThreads2());t.start();System.out.println("Endofmethod.");}}运行结果是什么,请选择2个(d,e)d)Endofmethod.run.java.lang.RuntimeException:Probleme)run.java.lang.RuntimeException:ProblemEndofmethod. 13)下边哪2句话的描述是正确的(a,f)a)Itispossibleformorethantwothreadstodeadlockatoncef)fapieceofcodeiscapableofdeadlocking,youcannoteliminatethepossibilityofdeadlockingbyinsertinginvocationsofThread.yield().14)publicclassThreads2implementsRunnable{publicvoidrun(){System.out.println("run.");thrownewRuntimeException("Problem");}publicstaticvoidmain(String[]args){Threadt=newThread(newThreads2());t.start();System.out.println("Endofmethod.");}}程序运行结果是,选择2个(b,d)b)run.java.lang.RuntimeException:ProblemEndofmethodd)Endofmethod.run.java.lang.RuntimeException:Problem15)voidwaitForSignal(){Objectobj=newObject();synchronized(Thread.currentThread()){obj.wait();obj.notify();}}下列那句描述是正确的(b)b)ThiscodecanthrowanIllegalMonitorStateException.16)11.classPingPong2{12.synchronizedvoidhit(longn){13.for(inti=1;i<3;i++)14.System.out.print(n+"-"+i+"");15.}16.}17.publicclassTesterimplementsRunnable{18.staticPingPong2pp2=newPingPong2();19.publicstaticvoidmain(String[]args){20.newThread(newTester()).start();21.newThread(newTester()).start();22.}23.publicvoidrun(){pp2.hit(Thread.currentThread().getId());}24.}运行结果是(b)b)Theoutputcouldbe6-16-25-15-217)1.publicclassThreads4{2.publicstaticvoidmain(String[]args){3.newThreads4().go(); 4.}5.publicvoidgo(){6.Runnabler=newRunnable(){7.publicvoidrun(){8.System.out.print("foo");9.}10.};11.Threadt=newThread(r);12.t.start();13.t.start();14.}15.}运行结果是(b)b)Anexceptionisthrownatruntime.18)11.publicclassBarn{12.publicstaticvoidmain(String[]args){13.newBarn().go("hi",1);14.newBarn().go("hi","world",2);15.}16.publicvoidgo(String...y,intx){17.System.out.print(y[y.length-1]+"");18.}19.}运行结果是(c)c)Compilationfails19)10.classNav{11.publicenumDirection{NORTH,SOUTH,EAST,WEST}12.}13.publicclassSprite{14.//insertcodehere15.}哪句代码放到14行,程序可以正常编译(d)d)Nav.Directiond=Nav.Direction.NORTH;20)11.publicclassRainbow{12.publicenumMyColor{13.RED(0xff0000),GREEN(0x00ff00),BLUE(0x0000ff);14.privatefinalintrgb;15.MyColor(intrgb){this.rgb=rgb;}16.publicintgetRGB(){returnrgb;}17.};18.publicstaticvoidmain(String[]args){19.//insertcodehere20.}21.}哪句代码放到19行,程序可以正常编译(b)b)MyColortreeColor=MyColor.GREEN; 21)5.classAtom{6.Atom(){System.out.print("atom");}7.}8.classRockextendsAtom{9.Rock(Stringtype){System.out.print(type);}10.}11.publicclassMountainextendsRock{12.Mountain(){13.super("granite");14.newRock("granite");15.}16.publicstaticvoidmain(String[]a){newMountain();}17.}运行结果是(d)d)atomgraniteatomgranite22)1.interfaceTestA{StringtoString();}2.publicclassTest{3.publicstaticvoidmain(String[]args){4.System.out.println(newTestA(){5.publicStringtoString(){return"test";}6.});7.}8.}运行结果是(a)a)test23)11.publicstaticvoidparse(Stringstr){12.try{13.floatf=Float.parseFloat(str);14.}catch(NumberFormatExceptionnfe){15.f=0;16.}finally{17.System.out.println(f);18.}19.}20.publicstaticvoidmain(String[]args){21.parse(“invalid”);22.}运行结果是(b)b)Compilationfails.24)1.publicclassBlip{2.protectedintblipvert(intx){return0;}3.}4.classVertextendsBlip{5.//insertcodehere 6.}下列哪5个方法放到代码第五行,可以让程序编译正确,选择5个(a,c,e,f,g)a)publicintblipvert(intx){return0;}c)privateintblipvert(longx){return0;}e)protectedintblipvert(longx){return0;}f)protectedlongblipvert(longx){return0;}g)protectedlongblipvert(intx,inty){return0;}25)1.classSuper{2.privateinta;3.protectedSuper(inta){this.a=a;}4.}...11.classSubextendsSuper{12.publicSub(inta){super(a);}13.publicSub(){this.a=5;}14.}下列哪2条语句是正确的(c,d)c)Changeline13to:publicSub(){this(5);}d)Changeline13to:publicSub(){super(5);}26)packagetest;classTarget{publicStringname="hello";}如果可以直接修改和访问name这个变量,下列哪句话是正确的——没有给答案27)11.abstractclassVehicle{publicintspeed(){return0;}12.classCarextendsVehicle{publicintspeed(){return60;}13.classRaceCarextendsCar{publicintspeed(){return150;}…21.RaceCarracer=newRaceCar();22.Carcar=newRaceCar();23.Vehiclevehicle=newRaceCar();24.System.out.println(racer.speed()+“,“+car.speed()25.+“,“+vehicle.speed());运行结果是(d)d)150,150,15028)5.classBuilding{}6.publicclassBarnextendsBuilding{7.publicstaticvoidmain(String[]args){8.Buildingbuild1=newBuilding();9.Barnbarn1=newBarn();10.Barnbarn2=(Barn)build1;11.Objectobj1=(Object)build1;12.Stringstr1=(String)build1;13.Buildingbuild2=(Building)barn1; 14.}15.}运行结果是(c)c)Ifline12isremoved,thecompilationsucceeds.29)29.Given:21.classMoney{22.privateStringcountry="Canada";23.publicStringgetC(){returncountry;}24.}25.classYenextendsMoney{26.publicStringgetC(){returnsuper.country;}27.}28.publicclassEuroextendsMoney{29.publicStringgetC(intx){returnsuper.getC();}30.publicstaticvoidmain(String[]args){31.System.out.print(newYen().getC()+""+newEuro().getC());32.}33.}运行结果是(d)d)Compilationfailsduetoanerroronline2630)13.importjava.io.*;14.classFoodimplementsSerializable{intgood=3;}15.classFruitextendsFood{intjuice=5;}16.publicclassBananaextendsFruit{17.intyellow=4;18.publicstaticvoidmain(String[]args){19.Bananab=newBanana();Bananab2=newBanana();20.b.serializeBanana(b);//assumecorrectserialization21.b2=b.deserializeBanana();//assumecorrect22.System.out.println(“restore“+b2.yellow+b2.juice+b2.good);24.}25.//moreBananamethodsgohere50.}运行结果是(c)c)restore45331)11.doubleinput=314159.26;12.NumberFormatnf=NumberFormat.getInstance(Locale.ITALIAN);13.Stringb;14.//insertcodehere下列哪条语句可以设置变量b的值为314.159,26(b)b)b=nf.format(input);32)1.publicclassTestString1{2.publicstaticvoidmain(String[]args){3.Stringstr=“420”;4.str+=42;5.System.out.print(str);6.}7.}输出结果是(d) d)4204233)22.StringBuildersb1=newStringBuilder(“123”);23.Strings1=“123”;24.//insertcodehere25.System.out.println(sb1+““+s1);下列哪句代码放到程序的第24行,可以输出”123abc123abc”(e)e)sb1.append("abc");s1=s1.concat("abc");34)1.publicclassLineUp{2.publicstaticvoidmain(String[]args){3.doubled=12.345;4.//insertcodehere5.}6.}下列哪句代码放到程序的第4行,可以输出|12.345|?(f)f)System.out.printf("|%7.3f| ",d);35)11.publicclassTest{12.publicstaticvoidmain(String[]args){13.intx=5;14. ooleanb1=true;15. ooleanb2=false;16.17.If((x==4)&&!b2)18.System.out.print(“1“);19.System.out.print(“2“);20.if((b2=true)&&b1)21.System.out.print(“3“);22.}23.}程序的输出结果是(d)d)2336)10.interfaceFoo{}11.classAlphaimplementsFoo{}12.classBetaextendsAlpha{}13.classDeltaextendsBeta{14.publicstaticvoidmain(String[]args){15.Betax=newBeta();16.//insertcodehere17.}18.}下列哪句代码放到第16行,可以导致一个java.lang.ClassCastException(b)b)Foof=(Delta)x;37)22.publicvoidgo(){23.Stringo="";24.z: 25.for(intx=0;x<3;x++){26.for(inty=0;y<2;y++){27.if(x==1)break;28.if(x==2&&y==1)breakz;29.o=o+x+y;30.}31.}32.System.out.println(o);33.}当调用go方法时,输出结果是什么(c)c)00012038)11.staticvoidtest()throwsRuntimeException{12.try{13.System.out.print("test");14.thrownewRuntimeException();15.}16.catch(Exceptionex){System.out.print("exception");}17.}18.publicstaticvoidmain(String[]args){19.try{test();}20.catch(RuntimeExceptionex){System.out.print("runtime");}21.System.out.print("end");22.}程序运行结果是(d)d)testexceptionend39)33.try{34.//somecodehere35.}catch(NullPointerExceptione1){36.System.out.print("a");37.}catch(Exceptione2){38.System.out.print("b");39.}finally{40.System.out.print("c");41.}如果程序的第34行会抛出一些异常,程序的运行结果是(d)d)ac40)31.//somecodehere32.try{33.//somecodehere34.}catch(SomeExceptionse){35.//somecodehere36.}finally{37.//somecodehere38.}哪种情况下37行的代码会执行,请选择3个(b,c,e)b)Thecodeonline33throwsanexception. c)Thecodeonline35throwsanexception.e)Thecodeonline33executessuccessfully.41)10.intx=0;11.inty=10;12.do{13.y--;14.++x;15.}while(x<5);16.System.out.print(x+“,”+y);程序运行结果是(b)b)5,542)publicclassDrink{publicstaticvoidmain(String[]args){ ooleanassertsOn=true;assert(assertsOn):assertsOn=true;if(assertsOn){System.out.println(“assertison”);}}}程序运行结果是(c)c)assertison43)11.Floatpi=newFloat(3.14f);12.if(pi>3){13.System.out.print(“piisbiggerthan3.“);14.}15.else{16.System.out.print(“piisnotbiggerthan3.“);17.}18.finally{19.System.out.println(“Haveaniceday.”);20.}程序运行结果是(a)a)Compilationfails.44)1.publicclassBoxer1{2.IntegerI;3.intx;4.publicBoxer1(inty){5.x=i+y;6.System.out.println(x);7.}8.publicstaticvoidmain(String[]args){9.newBoxer1(newInteger(4)); 10.}11.}运行结果是(c)c)ANullPointerExceptionoccursatruntime.45)1.publicclassPerson{2.privateStringname;3.publicPerson(Stringname){this.name=name;}4.public ooleanequals(Personp){5.returnp.name.equals(this.name);6.}7.}下列哪条语句是正确的(a)a)TheequalsmethoddoesNOTproperlyoverridetheObject.equalsmethod.46)1.publicclassScoreimplementsComparable{2.privateintwins,losses;3.publicScore(intw,intl){wins=w;losses=l;}4.publicintgetWins(){returnwins;}5.publicintgetLosses(){returnlosses;}6.publicStringtoString(){7.return“<”+wins+“,”+losses+“>”;8.}9.//insertcodehere10.}下列哪句代码放到第9行,程序可以正确编译(b)b)publicintcompareTo(Scoreother){/*morecodehere*/}47)3.publicclassBatman{4.intsquares=81;5.publicstaticvoidmain(String[]args){6.newBatman().go();7.}8.voidgo(){9.incr(++squares);10.System.out.println(squares);11.}12.voidincr(intsquares){squares+=10;}13.}程序运行结果是(b)b)8248)15.publicclassYippee{16.publicstaticvoidmain(String[]args){17.for(intx=1;x0)elements[0]:null;程序运行结果是(d)d)Thevariablefirstissettoelements[0].52)31.classFoo{32.publicinta=3;33.publicvoidaddFive(){a+=5;System.out.print(“f“);}34.}35.classBarextendsFoo{36.publicinta=8;37.publicvoidaddFive(){this.a+=5;System.out.print(“b“);}38.}主方法执行下列语句Foof=newBar(); f.addFive();System.out.println(f.a);程序运行结果是()——没有给答案53)1.classClassA{2.publicintnumberOfInstances;3.protectedClassA(intnumberOfInstances){4.this.numberOfInstances=numberOfInstances;5.}6.}7.publicclassExtendedAextendsClassA{8.privateExtendedA(intnumberOfInstances){9.super(numberOfInstances);10.}11.publicstaticvoidmain(String[]args){12.ExtendedAext=newExtendedA(420);13.System.out.print(ext.numberOfInstances);14.}15.}下列哪句描述是正确的()——没有给答案54)11.classClassA{}12.classClassBextendsClassA{}13.classClassCextendsClassA{}and:21.ClassAp0=newClassA();22.ClassBp1=newClassB();23.ClassCp2=newClassC();24.ClassAp3=newClassB();25.ClassAp4=newClassC();下边哪句代码是正确的,请选择3个(a,e,f)a)p0=p1;e)p1=(ClassB)p3;f)p2=(ClassC)p4;55)5.classThingy{Meterm=newMeter();}6.classComponent{voidgo(){System.out.print("c");}}7.classMeterextendsComponent{voidgo(){System.out.print("m");}}8.9.classDeluxeThingyextendsThingy{10.publicstaticvoidmain(String[]args){11.DeluxeThingydt=newDeluxeThingy();12.dt.m.go();13.Thingyt=newDeluxeThingy();14.t.m.go();15.} 16.}下边哪句描述是正确的,请选择2个(a,f)a)Theoutputismm.f)DeluxeThingyhas-aComponent.56)10.interfaceJumper{publicvoidjump();}...20.classAnimal{}...30.classDogextendsAnimal{31.Tailtail;32.}...40.classBeagleextendsDogimplementsJumper{41.publicvoidjump(){}42.}...50.classCatimplementsJumper{51.publicvoidjump(){}52.}下边哪句描述是正确的,请选择3个(b,c,f)b)Catis-aJumperc)Dogis-aAnimalf)Beaglehas-aTail57)1.importjava.util.*;2.publicclassWrappedString{3.privateStrings;4.publicWrappedString(Strings){this.s=s;}5.publicstaticvoidmain(String[]args){6.HashSeths=newHashSet();7.WrappedStringws1=newWrappedString("aardvark");8.WrappedStringws2=newWrappedString("aardvark");9.Strings1=newString("aardvark");10.Strings2=newString("aardvark");11.hs.add(ws1);hs.add(ws2);hs.add(s1);hs.add(s2);12.System.out.println(hs.size());}}运行结果是(d)d)358)2.importjava.util.*;3.publicclassGetInLine{4.publicstaticvoidmain(String[]args){5.PriorityQueuepq=newPriorityQueue();6.pq.add("banana");7.pq.add("pear");8.pq.add("apple");9.System.out.println(pq.poll()+""+pq.peek());10.}11.}运行结果是(d)d)applebanana 59)3.importjava.util.*;4.publicclassMapit{5.publicstaticvoidmain(String[]args){6.Setset=newHashSet();7.Integeri1=45;8.Integeri2=46;9.set.add(i1);10.set.add(i1);11.set.add(i2);System.out.print(set.size()+"");12.set.remove(i1);System.out.print(set.size()+"");13.i2=47;14.set.remove(i2);System.out.print(set.size()+"");15.}16.}程序运行结果是(b)b)21160)12.importjava.util.*;13.publicclassExplorer1{14.publicstaticvoidmain(String[]args){15.TreeSets=newTreeSet();16.TreeSetsubs=newTreeSet();17.for(inti=606;i<613;i++)18.if(i%2==0)s.add(i);19.subs=(TreeSet)s.subSet(608,true,611,true);20.s.add(609);21.System.out.println(s+""+subs);22.}23.}运行结果是(f)f)[606,608,609,610,612][608,609,610]61)3.importjava.util.*;4.publicclassQuest{5.publicstaticvoidmain(String[]args){6.String[]colors={"blue","red","green","yellow","orange"};7.Arrays.sort(colors);8.ints2=Arrays.binarySearch(colors,"orange");9.ints3=Arrays.binarySearch(colors,"violet");10.System.out.println(s2+""+s3);11.}12.}运行结果是(c)c)2-562)34.HashMapprops=newHashMap();35.props.put("key45","somevalue");36.props.put("key12","someothervalue");37.props.put("key39","yetanothervalue");38.Sets=props.keySet();39.//insertcodehere 下列哪行代码放到39行是正确的(b)b)s=newTreeSet(s);63)1.publicclassTestOneimplementsRunnable{2.publicstaticvoidmain(String[]args)throwsException{3.Threadt=newThread(newTestOne());4.t.start();5.System.out.print("Started");6.t.join();7.System.out.print("Complete");8.}9.publicvoidrun(){10.for(inti=0;i<4;i++){11.System.out.print(i);12.}13.}14.}语系那个结果是()——没有给答案64)下边哪行代码是正确的,请选择3个(c,e,f)c)publicsynchronizedvoidgo(){/*codehere*/}e)voidgo(){synchronized(Object.class){/*codehere*/}f)voidgo(){Objecto=newObject();synchronized(o){/*codehere*/}65)1.publicclassTestFive{2.privateintx;3.publicvoidfoo(){4.intcurrent=x;5.x=current+1;6.}7.publicvoidgo(){8.for(inti=0;i<5;i++){9.newThread(){10.publicvoidrun(){11.foo();12.System.out.print(x+",");13.}}.start();14.}}程序如何修改,可以保证输出1,2,3,4,5,选择2个(a,d)a)movetheline12printstatementintothefoo()methodd)wrapthecodeinsidethefoo()methodwithasynchronized(this)block66)11.Runnabler=newRunnable(){12.publicvoidrun(){13.System.out.print("Cat");14.}15.};16.Threadt=newThread(r){ 17.publicvoidrun(){18.System.out.print("Dog");19.}20.};21.t.start();程序运行结果是(b)b)Dog67)1.publicclassThreads5{2.publicstaticvoidmain(String[]args){3.newThread(newRunnable(){4.publicvoidrun(){5.System.out.print("bar");6.}}).start();7.}8.}程序运行结果是(c)c)Thecodeexecutesnormallyandprints"bar".68)10.classOne{11.voidfoo(){}12.}13.classTwoextendsOne{14.//insertmethodhere15.}下列哪个方法放到第14行,程序可以编译正常,请选择3个(b,c,e)b)voidfoo(){/*morecodehere*/}c)publicvoidfoo(){/*morecodehere*/}e)protectedvoidfoo(){/*morecodehere*/}69)10.abstractpublicclassEmployee{11.protectedabstractdoublegetSalesAmount();12.publicdoublegetCommision(){13.returngetSalesAmount()*0.15;14.}15.}16.classSalesextendsEmployee{17.//insertmethodhere18.}下列哪个方法放到第17行,程序可以编译正常,请选择2个(b,d)b)publicdoublegetSalesAmount(){return1230.45;}d)protecteddoublegetSalesAmount(){return1230.45;}70)1.classX{2.X(){System.out.print(1);}3.X(intx){4.this();System.out.print(2);5.}6.}7.publicclassYextendsX{8.Y(){super(6);System.out.print(3);}9.Y(inty){ 10.this();System.out.println(4);11.}12.publicstaticvoidmain(String[]a){newY(5);}13.}程序运行结果是(c)c)123471)10.packagecom.sun.scjp;11.publicclassGeodetics{12.publicstaticfinaldoubleDIAMETER=12756.32;//kilometers13.}哪两行代码可以正确的访问变量DIAMETER,选择2个(a,c)a)importcom.sun.scjp.Geodetics;publicclassTerraCarta{publicdoublehalfway(){returnGeodetics.DIAMETER/2.0;}c)importstaticcom.sun.scjp.Geodetics.*;publicclassTerraCarta{publicdoublehalfway(){returnDIAMETER/2.0;}}72)1.publicclassA{2.publicvoiddoit(){3.}4.publicStringdoit(){5.return"a";6.}7.publicdoubledoit(intx){8.return1.0;9.}10.}运行结果是(c)c)Compilationfailsbecauseofanerrorinline4.73)35.String#name="JaneDoe";36.int$age=24;37.Double_height=123.5;38.double~temp=37.5;哪行代码是正确的,选择2个(b,c)b)36c)3774)10.interfaceFoo{intbar();}11.publicclassSprite{12.publicintfubar(Foofoo){returnfoo.bar();}13.publicvoidtestFoo(){14.fubar(//insertcodehere);15.}16.}下边哪行代码是正确的(c)c)newFoo(){publicintbar(){return1;}75)11.publicenumTitle{12.MR("Mr."),MRS("Mrs."),MS("Ms.");13.privatefinalStringtitle;14.privateTitle(Stringt){title=t;} 15.publicStringformat(Stringlast,Stringfirst){16.returntitle+""+first+""+last;17.}18.}19.publicstaticvoidmain(String[]args){20.System.out.println(Title.MR.format("Doe","John"));21.}运行结果是(a)a)Mr.JohnDoe76)10.classLine{11.publicstaticclassPoint{}12.}13.classTriangle{14.//insertcodehere16.}要创建一个point的对象,下面那句是正确的(b)b)Line.Pointp=newLine.Point();77)接口里的变量默认是什么类型的,选择3个(a,b,d)a)finalb)staticd)public78)1.packageutil;2.publicclassBitUtils{3.publicstaticvoidprocess(byte[]b){/*morecodehere*/}4.}1.packageapp;2.publicclassSomeApp{3.publicstaticvoidmain(String[]args){4.byte[]bytes=newbyte[256];5.//insertcodehere6.}7.}在第五行调用process方法,下边哪句代码是正确的(c)c)util.BitUtils.process(bytes);79)classInner{privateintx;publicvoidsetX(intx){this.x=x;}publicintgetX(){returnx;}}classOuter{privateInnery;publicvoidsetY(Innery){ this.y=y;}publicInnergetY(){returny;}}publicclassGamma{publicstaticvoidmain(String[]args){Outero=newOuter();Inneri=newInner();intn=10;i.setX(n);o.setY(i);//insertcodehereSystem.out.println(o.getY().getX());}}下边哪行代码放到注释的地方,可以保证程序输出结果为100,选择3个(b,c,f)b)i.setX(100);c)o.getY().setX(100);f)i=newInner();i.setX(100);o.setY(i);80)11.classSnoochy{12.Boochybooch;13.publicSnoochy(){booch=newBoochy(this);}14.}15.16.classBoochy{17.Snoochysnooch;18.publicBoochy(Snoochys){snooch=s;}19.}Andthestatements:21.publicstaticvoidmain(String[]args){22.Snoochysnoog=newSnoochy();23.snoog=null;24.//morecodehere25.}23行执行完之后,下边哪句话是正确的(d)d)Theobjectsreferencedbysnoochandboochareeligibleforgarbagecollection.81)5.classPayload{6.privateintweight;7.publicPayload(intw){weight=w;}8.publicvoidsetWeight(intw){weight=w;}9.publicStringtoString(){returnInteger.toString(weight);}10.}11.publicclassTestPayload{ 12.staticvoidchangePayload(Payloadp){/*insertcode*/}13.publicstaticvoidmain(String[]args){14.Payloadp=newPayload(200);15.p.setWeight(1024);16.changePayload(p);17.System.out.println("pis"+p);18.}}下边那句代码插入到第12行,可以保证程序输出结果是420(a)a)p.setWeight(420);82)11.publicstaticvoidtest(Stringstr){12.intcheck=4;13.if(check=str.length()){14.System.out.print(str.charAt(check-=1)+",");15.}else{16.System.out.print(str.charAt(0)+",");17.}18.}andtheinvocation:21.test("four");22.test("tee");23.test("to");运行结果是什么(c)c)Compilationfails.83)1.packageutil;2.publicclassBitUtils{3.privatestaticvoidprocess(byte[]b){}4.}1.packageapp;2.publicclassSomeApp{3.publicstaticvoidmain(String[]args){4.byte[]bytes=newbyte[256];5.//insertcodehere6.}7.}在第五行正确调用process方法的代码是(d)d)SomeAppcannotusetheprocessmethodinBitUtils.84)15.publicclassPass2{16.publicvoidmain(String[]args){17.intx=6;18.Pass2p=newPass2();19.p.doStuff(x);20.System.out.print("mainx="+x);21.}22.23.voiddoStuff(intx){24.System.out.print("doStuffx="+x++);25.}26.}在控制台依次输入命令javacPass2.java javaPass25运行结果是()——没有给答案85)12.publicclassTest{13.publicenumDogs{collie,harrier};14.publicstaticvoidmain(String[]args){15.DogsmyDog=Dogs.collie;16.switch(myDog){17.casecollie:18.System.out.print("collie");19.caseharrier:20.System.out.print("harrier");21.}22.}23.}运行结果是(d)d)collieharrier86)1.publicclassDonkey{2.publicstaticvoidmain(String[]args){3.booleanassertsOn=false;4.assert(assertsOn):assertsOn=true;5.if(assertsOn){6.System.out.println("assertison");7.}8.}9.}运行结果是(d)d)nooutputAnAssertionErroristhrown.87)11.staticvoidtest(){12.try{13.Stringx=null;14.System.out.print(x.toString()+"");15.}16.finally{System.out.print("finally");}17.}18.publicstaticvoidmain(String[]args){19.try{test();}20.catch(Exceptionex){System.out.print("exception");}21.}运行结果是(e)e)finallyexception88)11.staticvoidtest()throwsError{12.if(true)thrownewAssertionError();13.System.out.print("test");14.}15.publicstaticvoidmain(String[]args){16.try{test();}17.catch(Exceptionex){System.out.print("exception");}18.System.out.print("end");19.}运行结果是(e) e)AThrowableisthrownbymain.89)1.classTestExceptionextendsException{}2.classA{3.publicStringsayHello(Stringname)throwsTestException{4.if(name==null)thrownewTestException();5.return"Hello"+name;6.}7.}8.publicclassTestA{9.publicstaticvoidmain(String[]args){10.newA().sayHello("Aiko");11.}12.}运行结果是(d)d)TestAcompilesifline10isenclosedinatry/catchblockthatcatchesTestException.90)11.publicstaticCollectionget(){12.Collectionsorted=newLinkedList();13.sorted.add("B");sorted.add("C");sorted.add("A");14.returnsorted;15.}16.publicstaticvoidmain(String[]args){17.for(Objectobj:get()){18.System.out.print(obj+",");19.}20.}运行结果是(b)b)B,C,A,91)11.staticclassA{12.voidprocess()throwsException{thrownewException();}13.}14.staticclassBextendsA{15.voidprocess(){System.out.println("B");}16.}17.publicstaticvoidmain(String[]args){18.newB().process();19.}运行结果是(a)a)B92)10.publicclassFoo{11.staticint[]a;12.static{a[0]=2;}13.publicstaticvoidmain(String[]args){}14.}运行这段代码时会出现什么错误(c)c)java.lang.ExceptionInInitializerError93)11.publicstaticvoidmain(String[]args){12.Integeri=newInteger(1)+newInteger(2);13.switch(i){14.case3:System.out.println("three");break; 15.default:System.out.println("other");break;16.}17.}运行结果是(a)a)three94)11.publicstaticIteratorreverse(Listlist){12.Collections.reverse(list);13.returnlist.iterator();14.}15.publicstaticvoidmain(String[]args){16.Listlist=newArrayList();17.list.add("1");list.add("2");list.add("3");18.for(Objectobj:reverse(list))19.System.out.print(obj+",");20.}运行结果是(c)c)Compilationfails.95)1.publicclassTestString3{2.publicstaticvoidmain(String[]args){3.//insertcodehere5.System.out.println(s);6.}7.}下边哪两段代码放在第三行,可以保证程序输出4247(b,e)b)StringBuffers=newStringBuffer("123456789");s.delete(0,3).replace(1,3,"24").delete(4,6);e)StringBuilders=newStringBuilder("123456789");s.delete(0,3).delete(1,3).delete(2,5).insert(1,"24");96)5.importjava.util.Date;6.importjava.text.DateFormat;21.DateFormatdf;22.Datedate=newDate();23.//insertcodehere24.Strings=df.format(date);哪段代码放到23行,程序可以正确编译(e)e)df=DateFormat.getInstance();97)1.publicclassBuildStuff{2.publicstaticvoidmain(String[]args){3.Booleantest=newBoolean(true);4.Integerx=343;5.Integery=newBuildStuff().go(test,x);6.System.out.println(y);7.} 8.intgo(Booleanb,inti){9.if(b)return(i/7);10.return(i/49);11.}12.}运行结果是(b)b)4998)12.importjava.io.*;13.publicclassForestimplementsSerializable{14.privateTreetree=newTree();15.publicstaticvoidmain(String[]args){16.Forestf=newForest();17.try{18.FileOutputStreamfs=newFileOutputStream("Forest.ser");19.ObjectOutputStreamos=newObjectOutputStream(fs);20.os.writeObject(f);os.close();21.}catch(Exceptionex){ex.printStackTrace();}22.}}23.classTree{}运行结果是(b)b)Anexceptionisthrownatruntime.99)5.importjava.io.*;6.publicclassTalk{7.publicstaticvoidmain(String[]args){8.Consolec=newConsole();9.Stringpw;10.System.out.print("password:");11.pw=c.readLine();12.System.out.println("got"+pw);13.}14.}运行结果是(e)e)Compilationfailsduetoanerroronline8.100)11.Stringtest="TestA.TestB.TestC.";12.//insertcodehere13.String[]result=test.split(regex);下列哪行代码放到第12行,可以正确编译(e)e)Stringregex="\.\s*";101)1.interfaceA{publicvoidaMethod();}2.interfaceB{publicvoidbMethod();}3.interfaceCextendsA,B{publicvoidcMethod();}4.classDimplementsB{5.publicvoidbMethod(){}6.}7.classEextendsDimplementsC{8.publicvoidaMethod(){} 9.publicvoidbMethod(){}10.publicvoidcMethod(){}11.}下列那句话是正确的(f)f)IfyoudefineDe=(D)(newE()),thene.bMethod()invokestheversionofbMethod()definedinLine9.102)publicclassSimpleCalc{publicintvalue;publicvoidcalculate(){value+=7;}}andpublicclassMultiCalcextendsSimpleCale{publicvoidcalculate(){value-=3;}publicvoidcalculate(intmultiplier){calculate();super.calculate();value*=multiplier;}publicstaticvoidmain(String[]args){MultiCalccalculator=newMultiCalc();calculator.calculate(2);System.out.println("Valueis:"+calculator.value);}}运行结果是(a)a)Valueis:8103)1.publicclassBase{2.publicstaticfinalStringFOO="foo";3.publicstaticvoidmain(String[]args){4.Baseb=newBase();5.Subs=newSub();6.System.out.print(Base.FOO);7.System.out.print(Sub.FOO);8.System.out.print(b.FOO);9.System.out.print(s.FOO);10.System.out.print(((Base)s).FOO);11.}}12.classSubextendsBase{publicstaticfinalStringFOO="bar";}运行结果是(d)d)foobarfoobarfoo 104)11.classMammal{}12.13.classRaccoonextendsMammal{14.Mammalm=newMammal();15.}16.classBabyRaccoonextendsMammal{}下列哪句说法是正确的,选择4个(a,b,c,f)a)Raccoonis-aMammal.b)Raccoonhas-aMammal.c)BabyRaccoonis-aMammal.f)BabyRaccoonis-aBabyRaccoon.105)10.interfaceA{voidx();}11.classBimplementsA{publicvoidx(){}publicvoidy(){}}12.classCextendsB{publicvoidx(){}}And:20.java.util.Listlist=newjava.util.ArrayList();21.list.add(newB());22.list.add(newC());23.for(Aa:list){24.a.x();25.a.y();26.}运行结果是(f)f)Compilationfailsbecauseofanerrorinline25.106)2.publicclassHi{3.voidm1(){}4.protectedvoid()m2{}5.}6.classLoisextendsHi{7.//insertcodehere8.}下列哪句代码放到第7行,可以正确编译,选4个(a,b,e,f)a)publicvoidm1(){}b)protectedvoidm1(){}e)publicvoidm2(){}f)protectedvoidm2(){}107)10:publicclassHello{11:Stringtitle;intvalue;13:publicHello(){14:title+="World";15:}16:publicHello(intvalue){17:this.value=value;18:title="Hello";19:Hello();20:}21:}and: 30:Helloc=newHello(5);31:System.out.println(c.title);运行结果是(c)c)Compilationfails.108)10.interfaceData{publicvoidload();}11.abstractclassInfo{publicabstractvoidload();}下列哪段代码是正确的(a)a)publicclassEmployeeextendsInfoimplementsData{publicvoidload(){/*dosomething*/}}109)1.classAlligator{2.publicstaticvoidmain(String[]args){3.int[]x[]={{1,2},{3,4,5},{6,7,8,9}};4.int[][]y=x;5.System.out.println(y[2][1]);6.}7.}运行结果是(e)e)7110)21.abstractclassC1{22.publicC1(){System.out.print(1);}23.}24.classC2extendsC1{25.publicC2(){System.out.print(2);}26.}27.classC3extendsC2{28.publicC3(){System.out.println(3);}29.}30.publicclassCtest{31.publicstaticvoidmain(String[]a){newC3();}32.}运行结果是(d)d)123111)10.classOne{11.publicOnefoo(){returnthis;}12.}13.classTwoextendsOne{14.publicOnefoo(){returnthis;}15.}16.classThreeextendsTwo{17.//insertmethodhere18.}哪2行代码放到第17行,程序可以正确编译()——没有给答案112)下边哪两个类正确实现了java.lang.Runnable和java.lang.Cloneable接口(c,d)c)publicclassSessionimplementsRunnable,Cloneable{publicvoidrun(){/*dosomething*/}publicObjectclone(){/*makeacopy*/}d)publicabstractclassSessionimplementsRunnable,Cloneable{publicvoidrun(){/*dosomething*/}publicObjectclone(){/*makeacopy*/}113)11.publicinterfaceA{publicvoidm1();}12. 13.classBimplementsA{}14.classCimplementsA{publicvoidm1(){}}15.classDimplementsA{publicvoidm1(intx){}}16.abstractclassEimplementsA{}17.abstractclassFimplementsA{publicvoidm1(){}}18.abstractclassGimplementsA{publicvoidm1(intx){}}下列哪句描述是正确的(c)c)ExactlytwoclassesdoNOTcompile.114)10.classLine{11.publicclassPoint{publicintx,y;}12.publicPointgetPoint(){returnnewPoint();}13.}14.classTriangle{15.publicTriangle(){16.//insertcodehere17.}18.}下列哪句代码放到16行是正确的(d)d)Line.Pointp=(newLine()).getPoint();115)1.classTestA{2.publicvoidstart(){System.out.println("TestA");}3.}4.publicclassTestBextendsTestA{5.publicvoidstart(){System.out.println("TestB");}6.publicstaticvoidmain(String[]args){7.((TestA)newTestB()).start();8.}9.}运行结果是(b)b)TestB116)1.publicinterfaceA{2.publicoiddoSomething(Stringthing);3.}1.publicclassAImplimplementsA{2.publicvoiddoSomething(Stringthing){}3.}1.publicclassB{2.publicAdoit(){3.//morecodehere4.}5.6.publicStringexecute(){7.//morecodehere8.}9.} 1.pulblicclassCextendsB{2.publicAImpldoit(){3.//morecodehere4.}5.6.publicObjectexecute(){7.//morecodehere8.}9.}运行结果是(c)c)CompilationofclassCwillfailbecauseofanerrorinline6.117)11.publicstaticvoidmain(String[]args){12.Objectobj=newint[]{1,2,3};13.int[]someArray=(int[])obj;14.for(inti:someArray)System.out.print(i+"");15.}运行结果是(a)a)123118)publicclassThreads1{intx=0;publicclassRunnerimplementsRunnable{publicvoidrun(){intcurrent=0;for(inti=0;i<4;i++){current=x;System.out.println(current+",");x=current+2;}}}publicstaticvoidmain(String[]args){newThreads1().go();}publicvoidgo(){Runnablerl=newRunner();newThread(rl).start();newThread(rl).start();}}运行结果是,选择2个(a,c)a)0,2,4,4,6,8,10,6,c)0,2,4,6,8,10,12,14,119)1.publicclassTestOneimplementsRunnable{2.publicstaticvoidmain(String[]args)throwsException{3.Threadt=newThread(newTestOne()); 4.t.start();5.System.out.print("Started");6.t.join();7.System.out.print("Complete");8.}9.publicvoidrun(){10.for(inti=0;i<4;i++){11.System.out.print(i);12.}13.}14.}运行结果是(e)e)Thecodeexecutesandprints"Started0123Complete".120)publicclassStarterextendsThread{privateintx=2;publicstaticvoidmain(String[]args)throwsException{newStarter().makeItSo();}publicStarter(){x=5;start();}publicvoidmakeItSo()throwsException{join();x=x-1;System.out.println(x);}publicvoidrun(){x*=2;}}运行结果是(d)题库170d)9121)11.publicclassPingPongimplementsRunnable{12.synchronizedvoidhit(longn){13.for(inti=1;i<3;i++)14.System.out.print(n+"-"+i+"");15.}16.publicstaticvoidmain(String[]args){17.newThread(newPingPong()).start();18.newThread(newPingPong()).start();19.}20.publicvoidrun(){21.hit(Thread.currentThread().getId());22.}23.}下列哪种是可能的输出,选择2个(c,d)c)Theoutputcouldbe8-17-17-28-2d)Theoutputcouldbe8-18-27-17-2122)publicclassComputationextendsThread{privateintnum;privatebooleanisComplete;privateintresult; publicComputation(intnum){this.num=num;}publicsynchronizedvoidrun(){result=num*2;isComplete=true;notify();}publicsynchronizedintgetResult(){while(!isComplete){try{wait();}catch(InterruptedExceptione){}}returnresult;}publicstaticvoidmain(String[]args){Computation[]computations=newComputation[4];for(inti=0;i0);13.switch(x){14.case2:;15.default:assertfalse;16.}17.}18.privatevoidgo2(intx){assert(x<0);}下列哪句描述是正确的()——没有给答案133)11.publicstaticvoidmain(String[]args){12.try{13.args=null;14.args[0]="test";15.System.out.println(args[0]);16.}catch(Exceptionex){17.System.out.println("Exception");18.}catch(NullPointerExceptionnpe){19.System.out.println("NullPointerException");20.}21.}运行结果是(c) c)Compilationfails.134)11.publicstaticvoidmain(String[]args){12.for(inti=0;i<=10;i++){13.if(i>6)break;14.}15.System.out.println(i);16.}运行结果是(b)b)Compilationfails.135)11.classX{publicvoidfoo(){System.out.print("X");}}12.13.publicclassSubBextendsX{14.publicvoidfoo()throwsRuntimeException{15.super.foo();16.if(true)thrownewRuntimeException();17.System.out.print("B");18.}19.publicstaticvoidmain(String[]args){20.newSubB().foo();21.}22.}运行结果是(a)a)X,followedbyanException.136)11.publicvoidtestIfA(){12.if(testIfB("True")){13.System.out.println("True");14.}else{15.System.out.println("Nottrue");16.}17.}18.publicBooleantestIfB(Stringstr){19.returnBoolean.valueOf(str);20.}当testIfA方法被调用时结果是(a)a)True137)下边哪两行代码会导致StackOverflowError,选择2个(d,f)d)voiddoOne(intx){doTwo(x);}voiddoTwo(inty){doThree(y);}voiddoThree(intz){doTwo(z);}f)voidcounter(inti){counter(++i);}138)5.publicclassTahiti{6.Tahitit;7.publicstaticvoidmain(String[]args){8.Tahitit=newTahiti();9.Tahitit2=t.go(t);10.t2=null;11.//morecodehere12.}13.Tahitigo(Tahitit){14.Tahitit1=newTahiti();Tahitit2=newTahiti();15.t1.t=t2;t2.t=t1;t.t=t2;16.returnt1;17.}18.}程序执行完第11行后,有几个对象符合垃圾回收条件(a)a)0 139)11.publicclassItemTest{12.privatefinalintid;13.publicItemTest(intid){this.id=id;}14.publicvoidupdateId(intnewId){id=newId;}15.16.publicstaticvoidmain(String[]args){17.ItemTestfa=newItemTest(42);18.fa.updateId(69);19.System.out.println(fa.id);20.}21.}运行结果是(a)a)Compilationfails.140)classFoo{privateintx;publicFoo(intx){this.x=x;}publicvoidsetX(intx){this.x=x;}publicintgetX(){returnx;}}publicclassGamma{staticFoofooBar(Foofoo){foo=newFoo(100);returnfoo;}publicstaticvoidmain(String[]args){Foofoo=newFoo(300);System.out.print(foo.getX()+"-");FoofooFoo=fooBar(foo);System.out.print(foo.getX()+"-");System.out.print(fooFoo.getX()+"-");foo=fooBar(fooFoo);System.out.print(foo.getX()+"-");System.out.print(fooFoo.getX());}}运行结果是(b)b)300-300-100-100-100141)1.packagepackageA;2.publicclassMessage{3.StringgetText(){return"text";}4.}And:1.packagepackageB; 2.publicclassXMLMessageextendspackageA.Message{3.StringgetText(){return"text";}4.publicstaticvoidmain(String[]args){5.System.out.println(newXMLMessage().getText());6.}7.}当运行类XMLMessage里的主方法时,结果是(b)b)Compilationfails.142)3.interfaceFish{}4.classPerchimplementsFish{}5.classWalleyeextendsPerch{}6.classBluegill{}7.publicclassFisherman{8.publicstaticvoidmain(String[]args){9.Fishf=newWalleye();10.Walleyew=newWalleye();11.Bluegillb=newBluegill();12.if(finstanceofPerch)System.out.print("f-p");13.if(winstanceofFish)System.out.print("w-f");14.if(binstanceofFish)System.out.print("b-f");15.}16.}运行结果是(b)b)f-pw-f143)1.interfaceDoStuff2{2.floatgetRange(intlow,inthigh);}3.4.interfaceDoMore{5.floatgetAvg(inta,intb,intc);}6.7.abstractclassDoAbstractimplementsDoStuff2,DoMore{}8.9.classDoStuffimplementsDoStuff2{10.publicfloatgetRange(intx,inty){return3.14f;}}11.12.interfaceDoAllextendsDoMore{13.floatgetAvg(inta,intb,intc,intd);}下边哪句描述是正确的(a)a)Thefilewillcompilewithouterror.144)1.importjava.io.*;2.publicclassMaker{3.publicstaticvoidmain(String[]args){4.Filedir=newFile("dir");5.Filef=newFile(dir,"f");6.}7.}假设当前目录为空,用户对这个目录有读写的权限,上面代码的运行结果是(b)b)Nothingisaddedtothefilesystem.145)12.NumberFormatnf=NumberFormat.getInstance();13.nf.setMaximumFractionDigits(4);14.nf.setMinimumFractionDigits(2);15.Stringa=nf.format(3.1415926); 16.Stringb=nf.format(2);运行结果是,选择2个(c,f)c)Thevalueofbis2.00.f)Thevalueofais3.1416.146)12.Stringcsv="Sue,5,true,3";13.Scannerscanner=newScanner(csv);14.scanner.useDelimiter(",");15.intage=scanner.nextInt();运行结果是(d)d)Anexceptionisthrownatruntime.147)C是java.io.Console的一个对象,下边那个方法可以从C中读取一行文本,选择2个(a,f)a)Strings=c.readLine();f)char[]c=c.readLine("%s","name");148)11.Stringtest="a1b2c3";12.String[]tokens=test.split("\d");13.for(Strings:tokens)System.out.print(s+"");运行结果是(a)a)abc149)33.Dated=newDate(0);34.Stringds="December15,2004";35.//insertcodehere36.try{37.d=df.parse(ds);38.}39.catch(ParseExceptione){40.System.out.println("Unabletoparse"+ds);41.}42.//insertcodehere下列哪行代码可以创建一个DateFormat对象,并向Date对象里添加一天(b)b)35.DateFormatdf=DateFormat.getDateInstance();42.d.setTime((1000*60*60*24)+d.getTime());150)1.publicclassKungFu{2.publicstaticvoidmain(String[]args){3.Integerx=400;4.Integery=x;5.x++;6.StringBuildersb1=newStringBuilder("123");7.StringBuildersb2=sb1;8.sb1.append("5");9.System.out.println((x==y)+""+(sb1==sb2));10.}11.}运行结果是(b)b)falsetrue151)11.classConverter{ 12.publicstaticvoidmain(String[]args){13.Integeri=args[0];14.intj=12;15.System.out.println("Itis"+(j==i)+"thatj==i.");16.}17.}当运行javaConverter12命令时,会有什么结果(d)d)Compilationfailsbecauseofanerrorinline13.152)10.classFoo{11.staticvoidalpha(){/*morecodehere*/}12.voidbeta(){/*morecodehere*/}13.}下边的哪句描述是正确的,选择2个()——没有给答案153)publicclassA{publicStringdoit(intx,inty){return"a";}publicStringdoit(int...vals){return"b";}}在主方法里调用25.Aa=newA();26.System.out.println(a.doit(4,5));运行结果是(a)a)Line26prints"a"toSystem.out.154)下边哪句代码是正确的初始化了一个静态整型数组,选择2个(a,b)a)staticfinalint[]a={100,200};b)staticfinalint[]a;static{a=newint[2];a[0]=100;a[1]=200;}155)1.publicclassPlant{2.privateStringname;3.publicPlant(Stringname){this.name=name;}4.publicStringgetName(){returnname;}5.}1.publicclassTreeextendsPlant{2.publicvoidgrowFruit(){}3.publicvoiddropLeaves(){}4.}下列哪句是正确的(d)d)ThecodewillcompileifpublicPlant(){this("fern");}isaddedtothePlantclass.156)publicclassGoTest{publicstaticvoidmain(String[]args){Sentea=newSente();a.go();Gobanb=newGoban();b.go();Stonec=newStone();c.go();} }classSenteimplementsGo{publicvoidgo(){System.out.println("goinSente");}}classGobanextendsSente{publicvoidgo(){System.out.println("goinGoban");}}classStoneextendsGobanimplementsGo{}interfaceGo{publicvoidgo();}运行结果是(c)c)goinSentegoinGobangoinGoban157)哪两个类可以正确的实现java.lang.Runnable和java.lang.Cloneable接口选择2个(c,d)c)publicclassSessionimplementsRunnable,Cloneable{publicvoidrun(){/*dosomething*/}publicObjectclone(){/*makeacopy*/}d)publicabstractclassSessionimplementsRunnable,Cloneable{publicvoidrun(){/*dosomething*/}publicObjectclone(){/*makeacopy*/}158)11.classMud{12.//insertcodehere13.System.out.println("hi");14.}15.}Andthefollowingfivefragments:publicstaticvoidmain(String...a){publicstaticvoidmain(String.*a){publicstaticvoidmain(String...a){publicstaticvoidmain(String[]...a){publicstaticvoidmain(String...[]a){上边有几个方法可以放到第12行,是程序正确编译,(d)d)3159)11.publicinterfaceA111{12.Strings="yo";13.publicvoidmethod1();14.}17.interfaceB{}20.interfaceCextendsA111,B{21.publicvoidmethod1();22.publicvoidmethod1(intx);23.}运行结果是(a)a)Compilationsucceeds.160)interfaceFoo{intbar();}publicclassBeta{ classAimplementsFoo{publicintbar(){return1;}}publicintfubar(Foofoo){returnfoo.bar();}publicvoidtestFoo(){classAimplementsFoo{publicintbar(){return2;}}System.out.println(fubar(newA()));}publicstaticvoidmain(String[]args){newBeta().testFoo();}}下边哪个结果是正确的,选择3个(b,e,f)b)Thecodecompilesandtheoutputis2.e)Iflines16,17and18wereremoved,thecodewouldcompileandtheoutputwouldbe2.f)Iflines24,25and26wereremoved,thecodewouldcompileandtheoutputwouldbe1.161)11.classAlpha{12.publicvoidfoo(){System.out.print("Afoo");}13.}14.publicclassBetaextendsAlpha{15.publicvoidfoo(){System.out.print("Bfoo");}16.publicstaticvoidmain(String[]args){17.Alphaa=newBeta();18.Betab=(Beta)a;19.a.foo();20.b.foo();21.}22.}运行结果是(d)d)BfooBfoo162)1.publicclassTestOne{2.publicstaticvoidmain(String[]args)throwsException{3.Thread.sleep(3000);4.System.out.println("sleep");5.}6.}运行结果是(c)c)Thecodeexecutesnormallyandprints"sleep"163)1.publicclassThreads4{2.publicstaticvoidmain(String[]args){3.newThreads4().go();4.}5.publicvoidgo(){6.Runnabler=newRunnable(){7.publicvoidrun(){8.System.out.print("foo");9.}10.};11.Threadt=newThread(r);12.t.start();13.t.start();14.}15.}运行结果是(b) b)Anexceptionisthrownatruntime164)1.publicclassThreads3implementsRunnable{2.publicvoidrun(){3.System.out.print("running");4.}5.publicstaticvoidmain(String[]args){6.Threadt=newThread(newThreads3());7.t.run();8.t.run();9.t.start();10.}11.}运行结果是(e)e)Thecodeexecutesandprints"runningrunningrunning"165)publicclassNamedCounter{privatefinalStringname;privateintcount;publicNamedCounter(Stringname){this.name=name;}publicStringgetName(){returnname;}publicvoidincrement(){count++;}publicintgetCount(){returncount;}publicvoidreset(){count=0;}哪些改变可以使这个类被多线程安全的访问,选择3个(a,c,e)a)declarereset()usingthesynchronizedkeywordc)declaregetCount()usingthesynchronizedkeyworde)declareincrement()usingthesynchronizedkeyword166)1.publicclassTestSevenextendsThread{2.privatestaticintx;3.publicsynchronizedvoiddoThings(){4.intcurrent=x;5.current++;6.x=current;7.}8.publicvoidrun(){9.doThings();10.}11.}下边哪句是正确的(e)e)DeclaringthedoThings()methodasstaticwouldmaketheclassthread-safe.167)11.publicclassYikes{12.13.publicstaticvoidgo(Longn){System.out.print("Long");}14.publicstaticvoidgo(Shortn){System.out.print("Short");}15.publicstaticvoidgo(intn){System.out.print("int");}16.publicstaticvoidmain(String[]args){17.shorty=6;18.longz=7;19.go(y);20.go(z);21.}22.}运行结果是(a)a)intLong168)12.Datedate=newDate();13.df.setLocale(Locale.ITALY); 14.Strings=df.format(date);df是一个DateFormat的对象,并且已经被实例化,当这段代码在December14,2000运行的时候,结果是什么(d)d)Compilationfailsbecauseofanerrorinline13169)当我们用StringBuilder对象替换StringBuffer时,哪两种情况是不安全的,选择2个(a,b)a)WhenusingversionsofJavatechnologyearlierthan5.0.b)WhensharingaStringBufferamongmultiplethreads.170)11.Stringtest="Thisisatest";12.String[]tokens=test.split("s");13.System.out.println(tokens.length);代码的运行结果是(d)d)Compilationfails.171)10.importjava.io.*;11.classAnimal{12.Animal(){System.out.print("a");}13.}14.classDogextendsAnimalimplementsSerializable{15.Dog(){System.out.print("d");}16.}17.publicclassBeagleextendsDog{}如果类Beagle的一个实例被创建,经过序列化和反序列化,程序结果是(b)b)ada172)11.doubleinput=314159.26;12.NumberFormatnf=NumberFormat.getInstance(Locale.ITALIAN);13.Stringb;14.//insertcodehere哪句代码放到14行,可以保证程序输出结果为b=314.159,26(b)b)b=nf.format(input);173)11.classAnimal{publicStringnoise(){return"peep";}}12.classDogextendsAnimal{13.publicStringnoise(){return"bark";}14.}15.classCatextendsAnimal{16.publicStringnoise(){return"meow";}17.}...30.Animalanimal=newDog();31.Catcat=(Cat)animal;32.System.out.println(cat.noise());运行结果是(e)e)Anexceptionisthrownatruntime.174)10.abstractclassA{11.abstractvoida1();12.voida2(){}13.}14.classBextendsA{15.voida1(){} 16.voida2(){}17.}18.classCextendsB{voidc1(){}}and:Ax=newB();Cy=newC();Az=newC();下边代码哪些是正确的方法调用,选择4个(a,b,d,f)a)x.a2();b)z.a2();d)z.a1();f)x.a1();175)3.classEmployee{4.Stringname;doublebaseSalary;5.Employee(Stringname,doublebaseSalary){6.this.name=name;7.this.baseSalary=baseSalary;8.}9.}10.publicclassSalesPersonextendsEmployee{11.doublecommission;12.publicSalesPerson(Stringname,doublebaseSalary,doublecommission){13.//insertcodehere14.}15.}哪些代码放到第13行,程序可以运行,选择2个(a,e)a)super(name,baseSalary);e)super(name,baseSalary);this.commission=commission;176)11.publicclassPerson{12.privateStringname,comment;13.privateintage;14.publicPerson(Stringn,inta,Stringc){15.name=n;age=a;comment=c;16.}17.publicbooleanequals(Objecto){18.if(!(oinstanceofPerson))returnfalse;19,Personp=(Person)o;20.returnage==p.age&&name.equals(p.name);21.}22.}WhatistheappropriatedefinitionofthehashCodemethodinclassPerson?(b)b)returnname.hashCode()+age*7;177)12.importjava.util.*;13.publicclassExplorer3{14.publicstaticvoidmain(String[]args){15.TreeSets=newTreeSet();16.TreeSetsubs=newTreeSet();17.for(inti=606;i<613;i++)18.if(i%2==0)s.add(i);19.subs=(TreeSet)s.subSet(608,true,611,true);20.subs.add(629);21.System.out.println(s+""+subs);22.}23.}运行结果是(b)b)Anexceptionisthrownatruntime. 178)1.importjava.util.*;2.3.publicclassLetterASort{4.publicstaticvoidmain(String[]args){5.ArrayListstrings=newArrayList();6.strings.add("aAaA");7.strings.add("AaA");8.strings.add("aAa");9.strings.add("AAaa");10.Collections.sort(strings);11.for(Strings:strings){System.out.print(s+"");}12.}13.}运行结果是(c)c)AAaaAaAaAaaAaA179)5.classA{6.voidfoo()throwsException{thrownewException();}7.}8.classSubB2extendsA{9.voidfoo(){System.out.println("B");}10.}11.classTester{12.publicstaticvoidmain(String[]args){13.Aa=newSubB2();14.a.foo();15.}16.}运行结果是(d)d)Compilationfailsduetoanerroronline14.180)11.publicvoidsomeMethod(Objectvalue){12.//checkfornullvalue...20.System.out.println(value.getClass());21.}哪行代码放到12行,可以正确的处理一个null值(d)d)if(value==null){thrownewIllegalArgumentException("valueisnull");}181)1.publicclassMule{2.publicstaticvoidmain(String[]args){3.booleanassert=true;4.if(assert){5.System.out.println("assertistrue");6.}7.}8.}下边哪个命令可以让程序正常编译(b)b)javac-source1.3Mule.java182)1.publicclassVenus{2.publicstaticvoidmain(String[]args){3.int[]x={1,2,3};4.inty[]={4,5,6};5.newVenus().go(x,y);6.} 7.voidgo(int[]...z){8.for(int[]a:z)9.System.out.print(a[0]);10.}11.}运行结果是(c)c)14183)11.publicclassTest{12.publicenumDogs{collie,harrier,shepherd};13.publicstaticvoidmain(String[]args){14.DogsmyDog=Dogs.shepherd;15.switch(myDog){16.casecollie:17.System.out.print("collie");18.casedefault:19.System.out.print("retriever");20.caseharrier:21.System.out.print("harrier");22.}23.}24.}运行结果是(d)d)Compilationfails.184)11.staticvoidtest(){12.try{13.Stringx=null;14.System.out.print(x.toString()+"");15.}16.finally{System.out.print("finally");}17.}18.publicstaticvoidmain(String[]args){19.try{test();}20.catch(Exceptionex){System.out.print("exception");}21.}运行结果是(e)e)finallyexception185)1.publicclassBreaker2{2.staticStringo="";3.publicstaticvoidmain(String[]args){4.z:5.for(intx=2;x<7;x++){6.if(x==3)continue;7.if(x==5)breakz;8.o=o+x;9.}10.System.out.println(o);11.}12.}运行结果是(b)b)24186)11.publicstaticvoidmain(String[]args){12.Stringstr="null"; 13.if(str==null){14.System.out.println("null");15.}else(str.length()==0){16.System.out.println("zero");17.}else{18.System.out.println("some");19.}20.}运行结果是(d)d)Compilationfails187)11.classA{12.publicvoidprocess(){System.out.print("A,");}13.classBextendsA{14.publicvoidprocess()throwsIOException{15.super.process();16.System.out.print("B,");17.thrownewIOException();18.}19.publicstaticvoidmain(String[]args){20.try{newB().process();}21.catch(IOExceptione){System.out.println("Exception");}22.}运行结果是(d)d)Compilationfailsbecauseofanerrorinline14188)15.publicclassPass2{16.publicvoidmain(String[]args){17.intx=6;18.Pass2p=newPass2();19.p.doStuff(x);20.System.out.print("mainx="+x);21.}22.23.voiddoStuff(intx){24.System.out.print("doStuffx="+x++);25.}26.}在控制台依次输入命令javacPass2.javajavaPass25运行结果是(b)b)Anexceptionisthrownatruntime.189)11.interfaceDeclareStuff{12.publicstaticfinalintEASY=3;13.voiddoStuff(intt);}14.publicclassTestDeclareimplementsDeclareStuff{15.publicstaticvoidmain(String[]args){16.intx=5;17.newTestDeclare().doStuff(++x);18.}19.voiddoStuff(ints){20.s+=EASY+++s;21.System.out.println("s"+s);22.}23.}运行结果是(d)d)Compilationfails. 190)1.interfaceDoStuff2{2.floatgetRange(intlow,inthigh);}3.4.interfaceDoMore{5.floatgetAvg(inta,intb,intc);}6.7.abstractclassDoAbstractimplementsDoStuff2,DoMore{}8.9.classDoStuffimplementsDoStuff2{10.publicfloatgetRange(intx,inty){return3.14f;}}11.12.interfaceDoAllextendsDoMore{13.floatgetAvg(inta,intb,intc,intd);}运行结果是(a)a)Thefilewillcompilewithouterror.191)3.publicclassSpock{4.publicstaticvoidmain(String[]args){5.Longtail=2000L;6.Longdistance=1999L;7.Longstory=1000L;8.if((tail>distance)^((story*2)==tail))9.System.out.print("1");10.if((distance+1!=tail)^((story*2)==distance))11.System.out.print("2");12.}13.}运行结果是(e)e)Nooutputisproduced.192)5.classPayload{6.privateintweight;7.publicPayload(intw){weight=w;}8.publicvoidsetWeight(intw){weight=w;}9.publicStringtoString(){returnInteger.toString(weight);}10.}11.publicclassTestPayload{12.staticvoidchangePayload(Payloadp){/*insertcode*/}13.publicstaticvoidmain(String[]args){14.Payloadp=newPayload(200);15.p.setWeight(1024);16.changePayload(p);17.System.out.println("pis"+p);18.}}下边哪行代码放到12行,可以保证输出420(a)a)p.setWeight(420);第二部分:判断题1)错2)错 3)错4)对5)错6)对7)对8)错9)错10)错11)对12)对13)错14)错15)错16)对17)对18)对19)对20)对21)错22)对23)错24)错25)错26)错27)错28)错29)对30)错31)错32)对33)对34)对35)对36)错37)错38)错39)错40)对41)错42)错43)错44)对45)对46)错47)对 48)错49)错50)错51)错52)对53)错54)对55)对56)错57)错58)对59)错60)对61)错62)错63)对64)对65)对66)对67)错68)错69)错70)错71)错72)错73)错74)对75)对76)对77)对78)对79)对80)对81)对82)错83)对84)对85)对86)对87)错88)错89)对90)对91)对92)对 93)错94)错95)错96)对97)错98)错99)错100)对第三部分:填空题1)(脚本元素)(动作元素)2)(属性)3)(page)(taglib)4)(languge,extend,)(session)5)(注释,声明)(scriptlet)6)(<%!表达式%>)7)(脚本元素)(动作元素)。8)(控制标志)(自定义标志)9)(请求,响应,)(输出,配置,)(异常) 10)(客户端)11)(jndi)12)(doDelete(),doOptions(),doPut(),doTrace())13)(较低的值)14)(方法)、(关键技术)15)(异步的JavaScript)16)(局部刷新)17)(xml类型)18)(getSession())19)(已转换)(服务中)20)(编码) 21)(static)22)(dobule)23)(int)24)(b)(f)( )(r)(t)25)(整数)26)(本地变量or局部变量)27)(范围)28)(声明)29)(String)30)(初始化)31)(equals()) 32)(数组)33)(固定)(更改)34)(该类的对象)35)(final)36)(装入)(生成)37)(变量引用)38)(方法名称,返回类型,形参)39)(static)40)(自身)41)(构造器)42)(方法) 43)(abstract)44)(构造器)45)(abstract)46)(内部类)47)(不再)48)(Throwable)49)(Exception)50)(字节流)(字符流)51)(DataOutputStream)52)(Seralizabe)53)(散列编码) 54)(接口)55)(Observer)56)(抽象)(text)57)(int,long,)58)(日期和时间)59)(两种)60)(public)(返回值)61)(用户线程)62)(守护线程)63)(中断)64)(仍然运行) 65)(方法)66)(任何对象)67)(自动结束)68)(优先级)69)(setVisiable())70)(JComponent)71)(组件)72)(布局管理器)73)(低级事件)(语义事件)74)(关系型数据访问)75)(外键) 76)(Connection,Statement)77)(desc)78)(数据定义语句)(数据管理语句)79)(Statement)80)(JTree)第四部分:简答题1)OOP是Object_orientedProgramming(面向对象编程)的缩写。这主要是为了区别于以前的面向过程的程序设计!指的是用对象的观点来组织与构建系统,它综合了功能抽象和数据抽象,这样可以减少数据之间的耦合性和代码的出错几率。使用面向对象编程技术可以使得软件开发者按照现实世界里人们思考问题的模式编写代码,可以让软件开发者更好地利用代码直接表达现实中存在的对象,将问题空间直接映射到解空间!类:即class在面向对象的程序设计中,专门用“类”来表示用户定义的抽象数据类型(user_definedabstracttype)。它将具有相同状态、操作和访问机制的多个对象进行了抽象。类具有继承、数据隐藏和多态三种主要特性。利用类的这三种特性可以更好地表示现实世界中事物。类是同一类对象实例的共性的抽象,对象是类的实例化。对象通常作为计算机模拟思维,表示真实世界的抽象,一个对象就像一个软件模块,可以为用户提供一系列的服务---可以改变对象的状态、测试、传递消息等。类定义了对象的实现细节或数据结构。类是静态的,对象是动态的,对象可以看作是运行中的类。类负责产生对象,可以将类当成生产对象的工厂(Objectfactory) 2)对象就是真实世界中的实体,对象与实体是一一对应的,也就是说现实世界中每一个实体都是一个对象,它是一种具体的概念。类是具备某些共同特征的实体的集合,它是一种抽象的概念,用程序设计的语言来说,类是一种抽象的数据类型,它是对所具有相同特征实体的抽象。3)STRING的长度是不可变的,STRINGBUFFER的长度是可变的。如果你对字符串中的内容经常进行操作,特别是内容要修改时,那么使用StringBuffer,如果最后需要String,那么使用StringBuffer的toString()方法4)能够定义成为一个中文的,因为java中以unicode编码,一个char占16个字节,所以放一个中文是没问题的5)JVM中类的装载是由ClassLoader和它的子类来实现的,JavaClassLoader是一个重要的Java运行时系统组件。它负责在运行时查找和装入类文件的类。6)String类是final类故不可以继承。7)Math.round(11.5)==12Math.round(-11.5)==-11round方法返回与参数最接近的长整数,参数加1/2后求其floor. 8)基本数据类型包括byte、int、char、long、float、double、boolean和short。java.lang.String类是final类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,我们应该用StringBuffer类9)不可以10)Int[][]test=newint[3][5]11)顺序分支循环12)Fordo…whilewhile13)abstractdoimplementsprivatethrowbooleandoubleimportprotectedthrowsbreakelseinstanceofpublictransientbyteextendsinreturntruethiscasefalseinterfaceshorttrycatchfinallongstaticvoidcharfinallynativesupervolatileclassfloatnewswitchwhilepackagecontinuefornullsynchronizeddefaultif14)标示符没有长度的限制;由字母、下划线(_)、美元符号($)和数字组成。以字母、下划线(_)或美元符号($)开始,不能以数字开始,中间不可以有空格;它是严格区分大小写的15) 有类变量,实例变量,局部变量示例:PublicclassTest{privatestaticStrings;//类变量privateStringa;//实例变量publicvoidgo(){inta;//局部变量}}16)简单,安全,可移植,面向对象,支持多线程,解释性的语言17)不对,jvm是平台相关的。源代码和字节码是平台无关的。18)Charbyteshortintlongfloatdoubleboolean19)不正确,精度不准确,应该用强制类型转换floatf=(float)3.420)Java提供两种不同的类型:引用类型和原始类型(或内置类型)。int是java的原始数据类型,Integer是java为int提供的封装类。21)用break;return方法。22) 可以。必须只有一个类名与文件名相同。23)&是位运算符。&&是布尔逻辑运算符。24)GC是垃圾收集器。Java程序员不用担心内存管理,因为垃圾收集器会自动进行管理。25)要请求垃圾收集,可以调用下面的方法之一:System.gc()Runtime.getRuntime().gc()26)switch(expr1)中,expr1是一个整数表达式。因此传递给switch和case语句的参数应该是int、short、char或者byte。long,string都不能作用于swtich。27) 数组没有length()这个方法,有length的属性。String有length()这个方法。28)Goto是java中的保留字,现在没有在java中使用29)两个对象,一个是“xyx”,一个是指向“xyx”的引用对象s。30) 作用域当前类同一package子孙类其他packagepublic√√√√protected√√√×friendly√√××private√×××31)封装、继承、多态32)都不能33)构造器Constructor不能被继承,因此不能重写Overriding,但可以被重载Overloading。34)不对,有相同的hashcode。35)不可以,如果其中包含对象的method();不能保证对象初始化.36)ArrayList和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢。 Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList差,而LinkedList使用双向链表实存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。37)方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写(Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。38)sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复。调用sleep不会释放对象锁。wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。39)如果数据将在线程间共享。例如正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个线程写过了,那么这些数据就是共享数据,必须进行同步存取。当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方法的返回时,就应该使用异步编程,在很多情况下采用异步途径往往更有效率。40)线程指在程序执行过程中,能够执行程序代码的一个执行单位,每个程序至少都有一个线程,也就是程序本身。Java中的线程有四种状态分别是:运行、就绪、挂起、结束。41) Java通过面向对象的方法进行异常处理,把各种不同的异常进行分类,并提供了良好的接口。在Java中,每个异常都是一个对象,它是Throwable类或其它子类的实例。当一个方法出现异常后便抛出一个异常对象,该对象中包含有异常信息,调用这个对象的方法可以捕获到这个异常并进行处理。Java的异常处理是通过5个关键词来实现的:try、catch、throw、throws和finally。一般情况下是用try来执行一段程序,如果出现异常,系统会抛出(throws)一个异常,这时候你可以通过它的类型来捕捉(catch)它,或最后(finally)由缺省处理器来处理。用try来指定一块预防所有"异常"的程序。紧跟在try程序后面,应包含一个catch子句来指定你想要捕捉的"异常"的类型。throw语句用来明确地抛出一个"异常"。throws用来标明一个成员函数可能抛出的各种"异常"。Finally为确保一段代码不管发生什么"异常"都被执行一段代码。可以在一个成员函数调用的外面写一个try语句,在这个成员函数内部写另一个try语句保护其他代码。每当遇到一个try语句,"异常"的框架就放到堆栈上面,直到所有的try语句都完成。如果下一级的try语句没有对某种"异常"进行处理,堆栈就会展开,直到遇到有处理这种"异常"的try语句42)字节流,字符流。字节流继承于InputStreamOutputStream,字符流继承于InputStreamReaderOutputStreamWriter。在java.io包中还有许多其他的流,主要是为了提高性能和使用方便。43)List以特定次序来持有元素,可有重复元素。Set无法拥有重复元素,内部排序。Map保存key-value值,value可多值。44)匿名的内部类是没有名字的内部类。不能extends(继承)其它类,但一个内部类可以作为一个接口,由另一个内部类实现。45)接口:在一个类里,只有申明没有实现。内部类:是在一个类的内部定义的一个类;抽象类:是以abstract定义的,里面至少有一个抽象方法。 46)FileReader类和FileWriter类分别继承自Reader类和Writer类。FileReader类用于读取文件,FileWriter类用于将数据写入文件,这两各类在使用前,都必须要调用其构造方法创建相应的对象,然后调用相应的read()或write()方法。47)表示该类不能被继承,是顶级类。48)链表、堆栈、二叉树、队列、图、堆,集合。49)Clone 有缺省行为,super.clone();他负责产生正确大小的空间,并逐位复制50)Length()charAt()split()trim()substring()replace()equals()valueOf()51)有两种:==和equals()第一种比较的是两个字符串对象的内存地址是否相同第二种比较的是两个字符串对象的值是否相同。52)(1)构造函数的方法名与类名相同。(2)构造函数没有返回类型。(3)构造函数的主要作用是完成对类对象的初始化工作。(4)构造函数不能由编程人员显式地直接调用。(5)在创建一个类的新对象的同时,系统会自动调用该类的构造函数为新对象初始化。(6)构造函数不可以被继承 (6)默认构造函数指没有参数的构造函数如果编写的类没有构造函数,系统会自动提供一个默认构造函数,它把所有的属性设为默认值(比如一些基本数据类型)。53)不可以实例化;可以被继承,继承的类如果不实现抽象类里的抽象方法,那么这个子类也要声明为抽象类。54)不可以,接口里的变量默认都是publicstaticfinal的;接口里的方法都是没有实现的方法。55)类不可以多继承,只能单继承;但可以多重实现接口。接口可以多重继承。56)可以重载;被重载的方法必须改变参数列表;被重载的方法可以改变返回类型被重载的方法可以改变访问修饰符;被重载的方法可以声明新的或更广的检查异常57)重写是指子类重定义从父类继承来的一个同名方法,此时子类将清除父类方法的影响。子类可以通过重新定义与父类同名的方法,实现自身的行为。子类在重新定义父类已有的方法时,应保持与父类完全相同的方法头声明,即应与父类有完全相同的方法名、返回类型和参数列表,否则就不是方法的覆盖,而是子类定义自己的与父类无关的方法,父类的方法仍然存在。58)Equals()59)List接口 ArrayList:一个可增长的数组,提供快速遍历和快速随机访问,当需要快速遍历时而不是做大量删除和插入时,用ArrayListVector(Hashtable)为了线程安全,Vector方法被同步,通常使用ArrayList而不用VectorSet接口重在数据的唯一性,不允许重复,set接口通过equals()方法确定两个对象是否相等,重复时只能有一个放在set中Map接口Map接口:按“键-值”对进行插入,(键、值都是对象)可以按照键来搜索值对象,可以查找值的集合,也可以查找键的集合60)当JAVA程序违反了JAVA的语义规则时,JAVA虚拟机就会将发生的错误表示为一个异常。违反语义规则包括2种情况。一种是JAVA类库内置的语义检查。例如数组下标越界,会引发IndexOutOfBoundsException;访问null的对象时会引发NullPointerException。另一种情况就是JAVA允许程序员扩展这种语义检查,程序员可以创建自己的异常,并自由选择在何时用throw关键字引发异常。所有的异常都是java.lang.Thowable的子类。61) 2 << 362)一个是值传递,把基本数据类型的变量复制一份,把副本传递到方法中,原来的变量值并不改变。一个是引用传递,直接把对象的引用传到方法中,通过这个引用,可以改变对象的属性值。8种基本数据类型都是值传递,其它的都属于引用传递。63)CollectionFrameWork如下:Collection├List│├LinkedList│├ArrayList│└Vector│ └Stack└ SetMap├Hashtable├HashMap└WeakHashMapCollection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements)Map提供key到value的映射64)常用的类:BufferedReader BufferedWriter FileReader FileWirter String Integer常用的包:java.lang java.awt java.io java.util java.sql常用的接口:FrameRunnableDataInputDataOutputConnectionResultSet List StatementIteratorMap Document NodeList65)Equals()clone()wait()notify()notifyAll()getClass()hashCode()finalize()66)排序的方法有:插入排序(直接插入排序、希尔排序),交换排序(冒泡排序、快速排序),选择排序(直接选择排序、堆排序),归并排序,分配排序(箱排序、基数排序)67)public class BubbleSort { public static void sort(int[] values) {int temp; for (int i = 0; i < values.length; ++i) { for (int j = 0; j < values.length - i - 1; ++j) {if (values[j] > values[j + 1]) {temp = values[j];values[j] = values[j + 1]; values[j + 1] = temp;} }}}68)和普通的类一样,内部类也可以有静态的。不过和非静态内部类相比,区别就在于静态内部类没有了指向外部的引用。这实际上和C++中的嵌套类很相像了,Java内部类与C++嵌套类最大的不同就在于是否有指向外部的引用这一点上,当然从设计的角度以及以它一些细节来讲还有区别。除此之外,在任何非静态内部类中,都不能有静态数据,静态方法或者又一个静态内部类(内部类的嵌套可以不止一层)。不过静态内部类中却可以拥有这一切。69)主要相同点:Lock能完成synchronized所实现的所有功能主要不同点:Lock有比synchronized更精确的线程语义和更好的性能。synchronized会自动释放锁,而Lock一定要求程序员手工释放,并且必须在finally从句中释放。70)不能,一个对象的一个synchronized方法只能由一个线程访问。71)shorts1=1;s1=s1+1;(s1+1运算结果是int型,需要强制转换类型)shorts1=1;s1+=1;(可以正确编译)72)方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。73)assertion(断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。在实现中,assertion就是在程序中的一条语句,它对一个boolean表达式进行检查,一个正确程序必须保证这个boolean表达式的值为true;如果该值为false,说明程序已经处于不正确的状态下,系统将给出警告或退出。一般来说,assertion用于保证程序最基本、关键的正确性。assertion检查通常在开发和测试时开启。为了提高性能,在软件发布后,assertion检查通常是关闭的。 74)Containercomponent75)windowEventmouseEventkeyEventactionEvent76)应用层,传输层,网络层,物理层和数据链路层77)应用层,表示层,会话层,传输层,网络层,数据链路层,物理层78)优点:简单,直观缺点:1、不能随意的访问集合里的指定对象(不能使用下标)2、与iterator相比,不能删除指定的元素。所以除了简单的读取数据,不建议使用这种方法。79)使用的是tcp协议步骤:请求、响应;建立连接;通信80)FlowLayout流布局管理器BorderLayout边界布局管理器GridLayout网格布局管理器CardLayout卡片布局管理器GridBagLayout网格包布局管理器81)使用的是tcp协议步骤:请求、响应;建立连接;通信 82)有两种:面向连接的传输和无连接的传输83)栈是一种线形集合,其添加和删除元素的操作应在同一段完成。栈按照后进先出的方式进行处理。堆是栈的一个组成元素。84)多线程有两种实现方法,分别是继承Thread类与实现Runnable接口同步的实现方面有两种,分别是synchronized,wait与notify85)会执行,在return前执行86)接口可以继承接口。抽象类可以实现(implements)接口87) 声明方法的存在而不去实现它的类被叫做抽象类(abstractclass),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof运算符可以用来决定某对象的类是否实现了接口。88)List,Set是;Map不是89)启动一个线程是调用start()方法,run()方法只是普通的方法调用。90) Collections是个java.util下的类,它包含有各种有关集合操作的静态方法。 Collection是个java.util下的接口,它是各种集合结构的父接口。91)Error表示系统级的错误和程序不必处理的异常,Exception表示需要捕捉或者需要程序进行处理的异常。92)都属于Map接口的类,实现了将惟一键映射到特定的值上。HashMap类没有分类或者排序。它允许一个null键和多个null值。Hashtable类似于HashMap,但是不允许null键和null值。它也比HashMap慢,因为它是同步的。93)final修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载。finally再异常处理时提供finally块来执行任何清除操作。如果抛出一个异常,那么相匹配的catch子句就会执行,然后控制就会进入finally块(如果有的话)。 finalize方法名。Java技术允许使用finalize()方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在Object 类中定义的,因此所有的类都继承了它。子类覆盖finalize()方法以整理系统资源或者执行其他清理工作。finalize()方法是在垃圾收集器删除对象之前对这个对象调用的。94)无论多少次地使用同一个SQL命令,PreparedStatement都只对它解析和编译一次。当使用Statement对象时,每次执行一个SQL命令时,都会对它进行解析和编译使用PreparedStatement对象比使用Statement对象的速度更快。95)序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。序列化的实现:将需要被序列化的类实现Serializable接口,该接口没有需要实现的方法,implementsSerializable只是为了标注该对象是可被序列化的,然后使用一个输出流(如:FileOutputStream)来构造一个ObjectOutputStream(对象流)对象,接着,使用ObjectOutputStream对象的writeObject(Objectobj)方法就可以将参数为obj的对象写出(即保存其状态),要恢复的话则用输入流。96)a:两种形式dtdschema,b:本质区别:schema本身是xml的,可以被XML解析器解析(这也是从DTD上发展schema的根本目的),c:有DOM,SAX,STAX等DOM:处理大型文件时其性能下降的非常厉害。这个问题是由DOM的树结构所造成的,这种结构占用的内存较多,而且DOM必须在解析文件之前把整个文档装入内存,适合对XML的随机访问SAX:不现于DOM,SAX是事件驱动型的XML解析方式。它顺序读取XML文件,不需要一次全部装载整个文件。当遇到像文件开头,文档结束,或者标签开头与标签结束时,它会触发一个事件,用户通过在其回调事件中写入处理代码来处理XML文件,适合对XML的顺序访问STAX:StreamingAPIforXML(StAX)97)存储过程是用户定义的一系列sql语句的集合,涉及特定表或其它对象的任务,用户可以调用存储过程,而函数通常是数据库已定义的方法,它接收参数并返回某种类型的值并且不涉及特定用户表。98) 导入必要的类,装入JDBC驱动程序,识别数据源,分配一个Connection对象,分配一个Statement对象,使用Statement执行一个查询,从返回的ResultSet对象中检索数据,关闭ResultSet,关闭Statement对象,关闭Connection对象99)事务是作为一个逻辑单元执行的一系列操作,一个逻辑工作单元必须有四个属性,称为ACID(原子性、一致性、隔离性和持久性)属性,只有这样才能成为一个事务:原子性:事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行。一致性:事务在完成时,必须使所有的数据都保持一致状态。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。事务结束时,所有的内部数据结构(如B树索引或双向链表)都必须是正确的。隔离性:由并发事务所作的修改必须与任何其它并发事务所作的修改隔离。事务查看数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看中间状态的数据。这称为可串行性,因为它能够重新装载起始数据,并且重播一系列事务,以使数据结束时的状态与原始事务执行的状态相同。持久性:事务完成之后,它对于系统的影响是永久性的。该修改即使出现系统故障也将一直保持。100)J2EE服务器启动时会建立一定数量的池连接,并一直维持不少于此数目的池连接。客户端程序需要连接时,池驱动程序会返回一个未使用的池连接并将其表记为忙。如果当前没有空闲连接,池驱动程序就新建一定数量的连接,新建连接的数量有配置参数决定。当使用的池连接调用完成后,池驱动程序将此连接表记为空闲,其他调用就可以使用这个连接。101)java事件委托机制的概念,一个源产生一个事件并将它送到一个或多个监听器那里。在这种方案中,监听器简单的等待,直到它收到一个事件。一旦事件被接受,监听器将处理这个事件,然后返回。垃圾回收机制垃圾收集是将分配给对象但不在使用的内存回收或释放的过程。如果一个对象没有指向它的引用或者其赋值为null,则次对象适合进行垃圾回收102)通过rollback()方法恢复事务执行前的状态。103) 使用的是tcp协议步骤:请求、响应;建立连接;通信104)•注册驱动(只做一次)•建立连接(connection)•创建SQL执行语句(statement)•执行SQL语句•处理执行结果•释放资源105)主键在本表中是唯一的、不可唯空的,外键可以重复可以唯空;外键和另一张表的主键关联,不能创建对应表中不存在的外键。106)JDO是Java对象持久化的新的规范,为javadataobject的简称,也是一个用于存取某种数据仓库中的对象的标准化API。JDO提供了透明的对象存储,因此对开发人员来说,存储数据对象完全不需要额外的代码(如JDBCAPI的使用)。这些繁琐的例行工作已经转移到JDO产品提供商身上,使开发人员解脱出来,从而集中时间和精力在业务逻辑上。另外,JDO很灵活,因为它可以在任何数据底层上运行。JDBC只是面向关系数据库(RDBMS)JDO更通用,提供到任何数据底层的存储功能,比如关系数据库、文件、XML以及对象数据库(ODBMS)等等,使得应用可移植性更强。107)包括:DOM(DocumentObjectModal)文档对象模型,SAX(SimpleAPIforXML)。DOM是一次性将整个文档读入内存操作,如果是文档比较小,读入内存,可以极大提高操作的速度,但如果文档比较大,那么这个就吃力了。所以此时SAX应用而生,它不是一次性的将整个文档读入内存,这对于处理大型文档就比较省力了108) 给处于其中的应用程序组件(JSP,SERVLET)提供一个环境,使JSP,SERVLET直接更容器中的环境变量接**互,不必关注其它系统问题。主要有WEB服务器来实现。例如:TOMCAT,WEBLOGIC,WEBSPHERE等。该容器提供的接口严格遵守J2EE规范中的WEBAPPLICATION标准。我们把遵守以上标准的WEB服务器就叫做J2EE中的WEB容器。109)Je22是Sun公司提出的多层(multi-diered),分布式(distributed),基于组件(component-base)的企业级应用模型(enterprieseapplicationmodel).在这样的一个应用系统中,可按照功能划分为不同的组件,这些组件又可在不同计算机上,并且处于相应的层次(tier)中。所属层次包括客户层(clietntier)组件,web层和组件,Business层和组件,企业信息系统(EIS)层。110)varre=/^d{1,8}$|.d{1,2}$/;varstr=document.form1.all(i).value;varr=str.match(re);if(r==null){sign=-4;break;}else{document.form1.all(i).value=parseFloat(str);}111)C/S是Client/Server的缩写。服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、Informix或SQLServer。客户端需要安装专用的客户端软件。 B/S是Brower/Server的缩写,客户机上只要安装一个浏览器(Browser),如NetscapeNavigator或InternetExplorer,服务器安装Oracle、Sybase、Informix或SQLServer等数据库。在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现。浏览器通过WebServer同数据库进行数据交互。112)会。如:inti,i2; return(i-i2); //wheni为足够大的正数,i2为足够大的负数。结果会造成溢位,导致错误。113) Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。该servlet的生命周期结束。114)BEAWebLogicServer,IBMWebSphereApplicationServer,Oracle9iApplicationServer,jBoss,Tomcat115)Jsp页面中的form标签里的method属性为get时调用doGet(),为post时调用doPost()。116)forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。redirect就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求,所以session,request参数都可以获取。117)J2EE本身是一个标准,一个为企业分布式应用的开发提供的标准平台。J2EE也是一个框架,包括JDBC、JNDI、RMI、JMS、EJB、JTA等技术118)<%@pageisThreadSafe=”false”%>119)初始化时调用init()方法;有请求到达时调用service()方法,service()根据请求的类型,调用doget()或depost()等方法120) MVC是Model-View-Controller的简写。"Model"代表的是应用的业务逻辑(通过JavaBean,EJB组件实现),"View"是应用的表示面(由JSP页面产生),"Controller"是提供应用的处理过程控制(一般是一个Servlet),通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现。这些组件可以进行交互和重用。121)Java中的23种设计模式:Factory(工厂模式), Builder(建造模式), FactoryMethod(工厂方法模式),Prototyp(原始模型模式),Singleton(单例模式), Facade(门面模式),Adapter(适配器模式), Bridge(桥梁模式), Composite(合成模式),Decorator(装饰模式), Flyweight(享元模式), Proxy(代理模式),Command(命令模式), Interpreter(解释器模式),Visitor(访问者模式),Iterator(迭代子模式), Mediator(调停者模式), Memento(备忘录模式),Observer(观察者模式), State(状态模式), Strategy(策略模式),TemplateMethod(模板方法模式),ChainOfResponsibleity(责任链模式)工厂模式:工厂模式是一种经常被使用到的模式,根据工厂模式实现的类可以根据提供的数据生成一组类中某一个类的实例,通常这一组类有一个公共的抽象父类并且实现了相同的方法,但是这些方法针对不同的数据进行了不同的操作。首先需要定义一个基类,该类的子类通过不同的方法实现了基类中的方法。然后需要定义一个工厂类,工厂类可以根据条件生成不同的子类实例。当得到子类的实例后,开发人员可以调用基类中的方法而不必考虑到底返回的是哪一个子类的实例。122)JSP是Servlet技术的扩展,本质上是Servlet的简易方式,更强调应用的外表表达。JSP编译后是"类servlet"。Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。JSP侧重于视图,Servlet主要用于控制逻辑。123)request,session,application,cookie等124)Page:指单页jsppage的范围; Request:的范围只在一jsp页发出请求到另一页之间,随后这个属性失效;Session:范围是用户和服务器连接的那段时间,用户与服务器断开属性就失效; Application:作用范围最大,在服务器一开始执行服务到服务器关闭为止。可能造成服务器负载过重。125)动态INCLUDE用jsp:include动作实现它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数静态INCLUDE用include伪码实现,定不会检查所含文件的变化,适用于包含静态页面<%@includefile="included.htm"%>126)JSP共有以下6种基本动作A、jsp:include:在页面被请求的时候引入一个文件。B、jsp:useBean:寻找或者实例化一个JavaBean。C、jsp:setProperty:设置JavaBean的属性。D、jsp:getProperty:输出某个JavaBean的属性。E、jsp:forward:把请求转到一个新的页面。F、jsp:plugin:根据浏览器类型为Java插件生成OBJECT或EMBED标记127)JSP共有以下9种基本内置组件:Request:用户端请求,此请求会包含来自GET/POST请求的参数Response:网页传回用户端的回应pageContext:网页的属性是在这里管理session:与请求有关的会话期application:servlet正在执行的内容out:用来传送回应的输出config:servlet的构架部件page:JSP网页本身exception:针对错误网页,未捕捉的例外128)setAttribute(Stringname,Object):设置名字为name的request的参数值getAttribute(Stringname):返回由name指定的属性值getAttributeNames():返回request对象所有属性的名字集合,结果是一个枚举的实例getCookies():返回客户端的所有Cookie对象,结果是一个Cookie数组 getCharacterEncoding():返回请求中的字符编码方式getContentLength():返回请求的Body的长度getHeader(Stringname):获得HTTP协议定义的文件头信息getHeaders(Stringname):返回指定名字的requestHeader的所有值,结果是一个枚举的实例getHeaderNames():返回所以requestHeader的名字,结果是一个枚举的实例getInputStream():返回请求的输入流,用于获得请求中的数据getMethod():获得客户端向服务器端传送数据的方法getParameter(Stringname):获得客户端传送给服务器端的有name指定的参数值getParameterNames():获得客户端传送给服务器端的所有参数的名字,结果是一个枚举的实例getParameterValues(Stringname):获得有name指定的参数的所有值getProtocol():获取客户端向服务器端传送数据所依据的协议名称getQueryString():获得查询字符串getRequestURI():获取发出请求字符串的客户端地址getRemoteAddr():获取客户端的IP地址getRemoteHost():获取客户端的名字getSession([Booleancreate]):返回和请求相关SessiongetServerName():获取服务器的名字getServletPath():获取客户端所请求的脚本文件的路径getServerPort():获取服务器的端口号removeAttribute(Stringname):删除请求中的一个属性JavaEE高级部分JSP选择题(100题)1)对于JSP的通用规则,描述正确的是:EA.JSP标记不区分大小写。B.指令和脚本元素的语法不是基于XML的,但有替代的基于XML的语法。 A.在标记中出现的属性值可以不用引号括起来,比如:<%@pagelanguage="Java"%>和<%@pagelanguage=java%>是等同的。B.在标记中使用字符/(正斜杠)作为转义字符。C.如果URL不是以"/"开始的,就被解释为相对于当前的JSP路径。2)对于标记,描述正确的是:ABA.一般来说,是、标记的子标记。B.如果aa.jsp有代码:,则在next.jsp中可以使用request.getParameter("name");把属性name的值取出来。C.如果aa.jsp有代码:
,则在next.jsp中可以使用request.getAttribute("name");把属性name的值取出来。D.如果标记不放在标记内,也就是不作为标记的子标记,则使用浏览器查看时会显示错误页面。3)在web.xml有如下代码段:webmastermyaddress@mycompany.com在Servlet中如何把webmaster的值:myaddress@mycompany.com取出来?CA.使用RequestDispatcher的getInitParameter("webmaster")方法B.使用ServletContext的getInitParameter("webmaster")方法C.使用ServletConfig的getInitParameter("webmaster")方法D.使用GenericServlet的getInitParameter("webmaster")方法4)在web.xml有如下代码段:teacherteacherCart在Servlet中如何把servlet名:teacher取出来?BA.使用Servlet的getServletName方法。B.使用ServletConfig的getServletName方法。C.使用ServletContext的getServletName方法。D.使用ServletRequest的getServletName方法。5)标记处理器必须对从JSP引擎发来的调用做出反应。其中有两个重要的方法,当打开或者关闭标记就会调用它们,它们分别是:bA.dostart()方法和doend()方法。B.doStartTag()方法和doEndTag()方法。C.doStart()方法和doEnd()方法。D.dostartTag()方法和doendTag()方法。6)aa.jsp与bb.jsp属于同一应用,在aa.jsp中使用标记,在bb.jsp中要把beanName这个bean对象变量所引用的对象取出来。那么对于以下描述,正确的是:bcA.在bb.jsp中仅使用代码:mybeanbc=session.getAttribute("beanName");取出beanName所引用的对象。B.在bb.jsp中取beanName所引用的对象前,先要使用<%@pageimport="mypackage.mybean"%>导入mypackage.mybean类。C.在bb.jsp中,对于使用session的getAttribute方法取出的beanName所引用的对象,要进行强制类型转换。D.在bb.jsp中使用session的getAttribute方法取出的对象和aa.jsp中的beanName所引用的对象无关。7)对于应用开发和部署的过程,J2EE规范定义了一个步骤,请按先后次序选择正确的步骤:cA.JSP和Servlet的开发、EJB的开发、打包、运行服务器B.HTML等静态资源的开发、Servlet的开发、会话Bean的开发、实体Bean的开发C.应用组件的开发、把应用组件合成模块、把模块合成应用、应用部署D.组件开发、合成应用、合成模块、部署8)aa.jsp文件如下:<%!staticintI=0;intj=0;%><%for(;I++<2;){out.print(j++);out.print("");}%>两个客户依次使用浏览器浏览aa.jsp,且每个客户只浏览一次,那么,第2个客户的浏览器将显示什么?eA.01B.12C.34D.56E.什么也没有9)J2EE中,在aa.jsp中有行代码:<%request.setAttribute(“Co.”,”isoftstone”);%>在bb.jsp中有行代码:<%out.println((String)request.getAttribute(“Co.”));%>为了使得在bb.jsp中的如上代码可以显示“isoftstone,可以使用()方法。[选择两项]AEA.在aa.jsp中使用把请求提交到bb.jspB.在aa.jsp中使用把页面重定向到bb.jspC.在aa.jsp中使用<%response.sendRedirect(“bb.jsp”);%>把页面重定向到bb.jspD.在aa.jsp中使用<%@includefile=”bb.jsp”%d>包含页面bb.jspE.在aa.jsp中使用<%config.getServletContext().getRequestDispatcher(“/bb.jsp”).forward(request.response);%>把页面重定向到bb.jsp10、在J2EE中,以下是有关jsp:setProperty和jsp:getProperty标记的描述,正确的是()。[选择两项]BC A.和标记都必须在的开始标记和结束标记之间B.这两个标记的name属性的值必须和标记的id属性的值一样C.和标记可以不在的开始标记和结束标记之间D.这两个标记的name属性的值可以和标记的id属性的值不同11、在J2EE中,关于JSP文件中的page指令在JSP文件中出现的位置和次数,正确的是()。[选择两项]ABA.page指令可以在JSP中的任何地方,以任何顺序出现B.一个JSP文件可以有任意多个page指令C.一个JSP文件只能有一个page指令D.在整个JSP文件中,虽然可以有多个page指令,但是任何属性/值对只能出现一次12、在J2EE中,myWebApp目录是一个Web应用程序根目录,当在浏览器中输入http://localhost:8080/myWebApp时,会自动打开该目录下的start.jsp文件。为了达到这个要求,需要web.xml中添加如下代码()。(选择一项)DA.start.jspB.start.jspC.start.jspD.start.jsp13、在J2EE中,下面JSP指令的描述,正确的是()。(选择一项)AA.指令以“<%@”开始,以“%>”结束B.指令以“<%”开始,以“%>”结束C.指令以“<”开始,以“>”结束D.指令以“”结束14、在J2EE中,aa.jsp文件如下:Look:
<%@includefile=”bb.txt”%>bb.txt文件只有文本:hello!aa.jsp和bb.txt在同一目录下,使用浏览器查看aa.jsp,会看到:Look:Hello!使用()方法,再次打开浏览器查看aa.jsp,会显示:Look:Hello!Teacher!(选择一项)DA.把bb.txt的文本改为:hello!Teacher!B.把bb.txt文件删除,然后新建文件bb.txt,所包含文本为:hello!Teacher! A.把bb.txt先改名为cc.txt,然后把名字再次改为bb.txt,把文本改为:hello!Teacher!B.以上方法都不对15、在J2EE中,在web.xml中,有如下代码:30以下描述,正确的是()。(选择一项)CA.定义了默认的会话超时时长,时长为30秒B.可以使用HttpSession类的getMaxInactiveInterval()方法把该值取出来C.定义了默认的会话超时时长,时长为30小时D.可以使用Session类的getMaxInactiveInterval()方法把该值取出来16、在J2EE中,<%=”1+4”%>将输出()。(选择一项)AA.1+4B.5C.14D.不会输出,因为表达式是错误的17、下面关于JSP自定义标记的描述正确的是()。(选择一项)AA.JSP自定义标记是用于添加新动作标记的扩展机制B.标记库通常被打包成.jar文件,该文件包含实现库标记的Java文件C.web.xml文件的表示类文件的位置D.标记的属性名在web.xml文件中描述18、在J2EE中,在JSP中想要使用JavaBean:mypackage.mybean,则以下写法正确的是()。(选择一项)DA.B.C.D.19、在J2EE中,如果使用标记:准备取出bean的属性的值,但propertyName属性在beanName中不存在,也就是说在beanName中没有这样的属性名:propertyName,也没有getPropertyName()方法。那么会在浏览器中显示()。(选择一项)A.错误页面B.nullC.0D.什么也没有20、在J2EE中,对于page指令:<%@pagebuffer="12kb"autoFlush="false"%>,正确的含义是()。(选择一项)CA.将输出流输出到不小于12kb的缓冲区中,但当缓冲区满时,会有一个运行时异常指明缓冲区溢出B.将输出流输出到一个小于12kb的缓冲区中,当缓冲区满时,会自动把缓冲输出到客户C.将输出流输出到一个小于12kb的缓冲区中,但当缓冲区满时,会有一个运行时异常指明缓冲区溢出 A.将输出流输出到不小于12kb的缓冲区中,当缓冲区满时,会自动把缓冲输出到客户21、J2EE中,aa.jsp文件使用了一个Bean,该Bean属于类mypackage.bb。该Bean和oracle数据库连接,完成对数据库中的某个表的插入、修改和查询数据的功能,mypackage.bb的方法getRs返回了记录集rs,则以下描述正确的是()。(选择两项)ABA.如果在aa.jsp中要使用这个rs来查询数据,则该JSP必须使用page指令的import属性导入java.sql包中的类。B.如果在aa.jsp中仅仅使用getRs方法返回rs而已,却不使用rs执行任何操作,则在aa.jsp中不用导入java.sql包中的类。C.如果在aa.jsp中使用page指令的import属性导入java.sql包中的类,则就不用在mypackage.bb中导入java.sql包中的类了。D.如果已在mypackage.bb这个javaBean中导入java.sql包中的类了,则就不用在aa.jsp中使用page指令的import属性导入java.sql包中的类。22、在J2EE中,下列关于JSP的scriptlet的陈述正确的是()。(选择两项)ADA.scriptlet是包含的<%和%>之间的B.scriptlet可以包含import语句C.scriptlet不但包含Java代码,还可以包含html代码D.整个JSP可以有多个<%和%>对23、有J2EE中,以下的page指令设置了使用的脚本语言是Java,且导入了java.rmi.*和java.util.*包,正确的是()。(选择一项)DA.<%@pageLanguage=”Java”,import=”java.rmi.*;java.uitl.*”%>B.<%@pagelanguage=”Java”Import=”java.rmi.*,java.util.*”%>C.<%@pagelanguage=”Java”;import=”java.rmi.*,java.util.*”%>D.<%@pagelanguage=”Java”import=”java.rmi.*,java.util.*”%>24、在J2EE中,对于jsp:getProperty标记的描述,正确的是()。(选择两项)CDA.在JSP文件中,标记jsp:getProperty存在的前提条件是也必须存在jsp:setProperty标记B.使用可以把beanName所引用的Bean对象的所有属性依次打印出来C.用jsp:getProperty标记访问bean的属性,会把属性值转换为String输出到客户的输出流中D.等价于out.println(beanName.getPropertyName());25、在J2EE中,如果a是b的父类,b是c的父类,c是d的父类,他们都在包mypackage中.则以下正确的是().(选择两项)BCA.B.C.D.26、在J2EE中,以下对JSP的隐含对象解释正确的是().(选择一项)DA.没有实例化过的类,可以直接使用类名当作对象使用B.是sun的开发人员自己起的名字,我们自己也可以定义隐含对象 A.隐含对象是没有类型的B.是JSP根据ServletAPI而提供的,可以使用标准的变量来访问这些对象27、在J2EE中,使用jsp:useBean标记时,用不同的scope值,对于它们的含义解释正确的是()。(选择三项)ACDA.scope为page表示可以在JSP文件中使用bean,直到页面执行完毕。所有该JSP文件的静态包含文件也可以使用beanB.scope为request表示在任何执行相同请求的JSP文件中使用bean,比如使用response的sendRedirect方法重定向到新的JSP文件,在这个新的JSP文件中就可以使用request的getAttribute方法把bean实例取出来C.scope为session表示bean存在于整个session生存周期内,任何使用相同session 的JSP文件都可以使用session的getAttribute方法把bean实例取出来D.scope为application表示bean存在于整个上下文环境中,可以使用application的getAttribute方法把bean实例取出来28、表示“资源移动”的状态码是。(选择1项)BA.200B.302C.400D.50029、哪一个对象可以用于获得浏览器发送的请求。(选择1项)AA.HttpServletRequestB.HttpServletResponseC.HttpServletD.Http30、如果不希望在JSP页面中存取HTTP会话,应该如何设定page指令?(选择1项)BA.<%pagesession="disabled"%>B.<%pagesession="false"%>C.<%pagesession="true"%>D.<%pagedisablesession="true"%>31、在Servlet的生命周期中,容器只调用一次的方法是。(选择2项)CA.serviceB.getServletConfigC.initD.destroy32.在使用服务器端的会话管理时,通过什么方法标识会话。(选择1项)CA.IP地址B.CookieC.SessionidD.请求头 33.下列哪个为JSP的小脚本的标签?(选择1项)AA.<%%>B.<@%>C.<%!%>D.<%--%>34.下面哪一个不是元素的属性。(选择1项)CA.scopeB.IdC.ValueD.Class35、HttpServlet中,用来处理POST请求的方法是(选择1项)CA.doHeadB.doGetC.doPostD.doPut36、如何创建Cookie?(选择1项)AA.使用newCookie语句B.调用response.addCookie方法C.使用Cookie的setMaxAge方法D.setCookie方法37、按照MVC设计模式,Servlet用于实现(选择1项)AA.ControllerB.ViewC.ModelD.容器38、动态网站需要的技术为。(选择3项)ACDA.CGIB.HTTPC.ASPD.PHP39、如何取得数据源。(选择1项)CA.通过HttpB.通过ftpC.JNDID.通过Connection对象40、以下哪一个不是Filter接口的方法。(选择1项)CA.init(FilterConfigconfig)B.voiddestroy() A.voiddoFilter(HttpServletRequestrequest,HttpServletResponseresponse)B.voiddoFilter(ServletRequestrequest,ServletResponseresponse,FilterChainchain)41、javax.Servlet的包中,属于类的是。(选择1项)A.ServletB.GenericServletC.ServletRequestD.ServletContext42、用于表示Statement对象返回结果的是。(选择1项)AA.ResultSetB.DriverManagerC.PreparedStatementD.Connection43、如何发送Cookie?。(选择1项)BA.使用newCookie语句B.调用response.addCookie方法C.使用Cookie的setMaxAge方法D.setCookie方法44.察看下列JSP内容<%for(inti=0;i<3;i++){%>out.print(i*2);<%}%>当这个JSP被运行时,其结果是什么?(选择1项)DA.此JSP因为语法错误,无法运行B.显示出0,2,4C.显示出0,2,4,6D.显示出out.print(i*2)out.print(i*2)out.print(i*2)45、在J2EE中属于Web层的组件有(选择1项)DA.HTMLB.EJBC.AppletD.JSP46、关于JSP生命周期的叙述,下列哪些为真?(选择2项)ACA.JSP会先解释成Servlet源文件,然后编译成Servlet类文件B.每当用户端运行JSP时,jspInit()方法都会运行一次C.每当用户端运行JSP时,_jspService()方法都会运行一次D.每当用户端运行JSP时,jspDestroy()方法都会运行一次 47、在JSP页面中不可以用来异常处理的有。(选择1项)DA.html文件B.JSP文件C.ServletD.Txt文件48.在MVC设计模式中,JavaBean的作用是。(选择1项)BA.ControllerB.ModelC.业务数据的封装D.View49.Page指示符的language属性的作用是。(选择1项)CA.定义JSP页面的字符编码B.定义JSP页面的MIME类型C.定义JSP页面中使用的脚本语言D.定义JSP页面的描述信息50.下面哪一个隐含变量的存取范围不是page?(选择1项)BA.configB.applicationC.outD.page51.在J2EE的Web应用中,编译后的class文件存放的目录为(选择1项)AA.classes目录B.images目录C.jar目录D.任意位置52.在JSP中,哪个指令用来声明JSP欲使用的标签库?(选择1项)BA.tldB.taglibC.importD.include53.Servlet处理请求的方式为(选择1项)BA.以运行的方式B.以线程的方式C.以程序的方式D.以调度的方式54.下列哪个用于在JSP中表示注释?(选择1项)CA.<%%>B.<@%> A.<%----%>B.<%--%>55.在JavaWeb应用中,MVC设计模式中的V(视图)通常由()充当。(选1项)AA.JSPB.ServletC.ActionD.JavaBean56、网页服务默认的端口号是(),我们可以通过HTTP地址加上端口号来访问网站。(选1项)DA.8100B.8080C.9000D.8057、JSP标准标签库(JSTL)的标签库描述符文件的后缀是()。(选1项)AA..tldB..jarC..propertiesD..xml58、Web服务是一种通过互联网来描述、发布、定位及调用的服务,下列关于Web服务的理解正确的是()。(选1项)DA.Web服务只能在互联网发布,不能在局域网内发布B.Web服务的提供者和请求者必须使用相同的技术平台C.Web服务的提供者和请求者必须使用的语言开发应用程序D.Web服务的数据传输标准是XML59、在JavaWeb应用程序中,使用哪个数据源与JNDI获得数据库连接时,应把JDBC驱动程序jar文件放在()下。(选1项)DA.应用程序的src目录B.应用程序的/WEB-INF/lib目录C.Tomcat的根目录D.Tomcat的common/lib目录60、在JavaWeb应用程序中,包含jsp1.jsp和jsp2.jsp,以及封装在user包下的名为User的JavaBean,User中包含loginName属性以及相应的setter和getter方法,如果用户A在浏览器中访问jsp1.jsp后,用户B在浏览器中访问jsp2.jsp,则用户B的浏览器将()。(选1项)Bjsp1.jsp的代码如下所示:jsp2.jsp的代码如下所示: A.什么也不显示B.显示“null”C.显示“Mary”D.报错,提示无法显示网页61、当浏览器第二次访问以下JSP网页时的输出结果是什么?(单选)C<%intb=0;a++;b++;%>a:<%=a%>
b:<%=b%>A.a=0b=0B.a=1b=1C.a=2b=162、下面哪个说法是正确的?(单选)BA.对于每个要求访问maillogin.jsp的HTTP请求,Servlet容器都会创建一个HttpSession对象B.每个HttpSession对象都有惟一的ID。C.JavaWeb应用程序必须负责为HttpSession分配惟一的ID63、如果不希望JSP网页支持Session,应该如何办?(单选)BA.调用HttpSession的invalidate()方法B.<%@pagesession=“false">64、在标签处理类中,如何访问session范围内的共享数据?(多选)BC选项:A.在TagSupport类中定义了session成员变量,直接调用它的getAttribute()方法即可。B.在标签处理类TagSupport类中定义了pageContext成员变量,先通过它的getSession()方法获得当前的HttpSession对象,再调用HttpSession对象的getAttribute()方法。C.pageContext.getAttribute(“attributename”,PageContext.SESSION_SCOPE)65、以下代码能否编译通过,假如能编译通过,运行时得到什么打印结果?(单选)Arequest.setAttribute("count",newInteger(0));Integercount=request.getAttribute("count");A.不能编译通过B.能编译通过,并正常运行C.编译通过,但运行时抛出ClassCastException 66、以下哪些说法是正确的?(单选)BA.每个HTTP请求对应一个单独的ActionServlet实例B.对于每个请求访问HelloAction的HTTP请求,Struts框架会创建一个单独的HelloAction实例。C.每个子应用对应一个单独的RequestProcessor实例D.每个子应用对应一个单独的web.xml文件67、下面哪一个不是JSP本身已加载的基本类?BA.java.lang.*B.java.io.*C.javax.servlet.*D.javax.servlet.jsp.*68、对于预定义<%!预定义%>的说法错误的是:CA.一次可声明多个变量和方法,只要以“;”结尾就行B.一个声明仅在一个页面中有效C.声明的变量将作为局部变量D.在预定义中声明的变量将在JSP页面初始化时初始化69、在JSP中使用标记时,不会出现的属性是:CA.nameB.propertyC.valueD.以上皆不会出现70、Page指令用于定义JSP文件中的全局属性,下列关于该指令用法的描述不正确的是:DA.<%@page%>作用于整个JSP页面。B.可以在一个页面中使用多个<%@page%>指令。C.为增强程序的可读性,建议将<%@page%>指令放在JSP文件的开头,但不是必须的。D.<%@page%>指令中的属性只能出现一次。71、在JSP中调用JavaBean时不会用到的标记是:AA.B.C.D.72、关于JavaBean正确的说法是:BA.Java文件与Bean所定义的类名可以不同,但一定要注意区分字母的大小写B.在JSP文件中引用Bean,其实就是用语句C.被引用的Bean文件的文件名后缀为.javaD.Bean文件放在任何目录下都可以被引用73、Servlet程序的入口点是:AA.init()B.main() A.service()B.doGet()74、不能在不同用户之间共享数据的方法是AA、通过cookieB、利用文件系统C、利用数据库D、通过ServletContext对象75、下列哪个为JSP的隐含对象。(选择1项)BA.envB.pageC.jspinfoD.context76、哪一个不是EL定义的隐式对象?(选择1项)CA.cookieB.pageContextC.attributesD.initParam77、下面哪些属于JSTL中的表达式操作标签。(选择1项)BA.B.C.D.78、关于JSP,下列说法不正确的有()。DA.JSP的全称是JavaServerPagesB.JSP是由sun公司倡导,许多别的公司参与一起建立起来的一种动态网页技术C.在HTML文件里中加入Java程序片断和JSP标签可以构成JSP网页D.JSP的运行环境是:正确安装JDK即可。79、下面是一JSP页面的代码,请问输出结果是().A<%!intI=1;%><%i=++;%>A.什么也不输出。B.弹出内容为“Is1”的对话框。C.弹出内容为“Is2”的对话框。D.当第一次访问这个程序时,弹出一个内容为"Isother"的对话框,从第二次开始,每次访问这个程序都弹出内容为“Is2”的对话框。E.e当第一次访问这个程序时,弹出一个内容为"Is1"的对话框,从第二次开始,每次访问这个程序都弹出内容为“Is2”的对话框。80、下面是一JSP页面的片断代码,请问页面输出结果是().D<%StringBufferbuffer=newStringBuffer(”Hello”);buffer.append(“World”);System.out.println(buffer.toString());%>A.HelloB.WorldC.HelloWorldD.什么也不输出81、在列语句正确的有()。AA.<%@includefile=”head.jsp”%>B.<%Stringurl=”head.jsp”;%><%@includefile=”url”%>C.<%@includefile=”head.jsp”?name=”isoftstone”%>D.<%StringcompanyName=”isoftstone”;%><%@includefile=”head.jsp”?name=companyName%>82、JSP1.2中表达式的语法是()。AA.<%=expression%>B.<%=expression;%>C.<%@=expression%>D.<%@=expression;%>83、下列选项中能在JSP页面中实现转向的是()。BA.response.forward("/index.jsp"); A.response.sendRedirect("/index.jsp");B.request.forward("/index.jsp");C.request.sendRedirect("/index.jsp");84、如果某一JSP页面的表单中,有几个复选框,name为“habit”,则该jsp提交后,通过下面()语句去获取用户选中复选框的值。CA.request.getAttribute(“habit”);B.request.getParameter(“habit”);C.request.getParameterValues(“habit”);D.request.getHabit();85、关于session的使用,下列说话正确的是()。ACA.不同的用户窗口具有不同的sessionB.不同的用户窗口具有相同的sessionC.session可能超时间D.Session永远不可能超时86、如果用JSP开发一个聊天程序,不用数据库存储聊天纪录,请问聊天记录最好存储在()中。DA.requestB.pageC.sessionD.application87、在JSP页面中,正确引入JavaBean的是()。CA.<%jsp:useBeanid=”myBean”scope=”page”class=”pkg.MyBean”%>B.C.D.88、关于,下列说法不正确的是()。DA.它可以包含静态文件B.它可以包含动态文件C.当它的flush属性为true时,表示缓冲区满时,将会被清空D.它的flush属性的默认值为true89、用JSP2.0表达式语法在JSP页面上正确显示10+20的结果的是()。AA.${10+20}B.${10+20};C.$(10+20)D.$(10+20);90、支持JSP2.0和Servlet2.4的TOMCAT版本是()。CA.TOMCAT4.0以上B.TOMCAT4.24以上C.TOMCAT5.0以上 A.TOMCAT5.5以上91、编写自定义标签处理类后,需要编写一个()去描述。BA..tag文件B..tld文件C..dtd文件D..xml文件92、关于TagFile说法不正确的是()。BA.TagFile是JSP2.0新增的功能B.TagFile是JSP1.2增的功能C.TagFile可以让网页开发人员直接使用JSP语法制作标签D.TagFile的扩展名可以.tag93、下面语句中,最后myVar的值为()。C2+2A.0B.4C.2+2D.NULL94、关于ServletFilter,下列说法正确的有()。CDA.Filter其实就是一个ServletB.Filter可以产生responseC.Filter可以在servlet被调用之前截获requestD.Filter可以用来处理统一认证,过滤不雅字句等。95、在一个Filter中,处理filter业务的是()方法。CA.dealFilter(ServletRequestrequest,ServletResponseresponse,FilterChainchain)B.dealFilter(ServletRequestrequest,ServletResponseresponse)C.doFilter(ServletRequestrequest,ServletResponseresponse,FilterChainchain)D.doFilter(ServletRequestrequest,ServletResponseresponse)96、MVC属于()。BA.Model1B.Model2C.Model3D.Model497、LOG4J是()。AA.LOG4J是APACHE组织提供的一个日志组件,可利用它处理日志B.LOG4J是SUN公司提供的一个日志组件,可利用它处理日志C.LOG4J是IBM公司提供的一个日志组件,可利用它处理日志 A.LOG4J是BEA公司提供的一个日志组件,可利用它处理日志98、重向可以使用()方法。ACA.response.sendRedirect(“login.jsp”):B.request.sendRedirect(“login.jsp”);C.D.99、Session对象的()方法用于设置会话的超时时间。AA.session.setMaxInactiveInterval(30);B.session.setMaxTime(30);C.session.getMaxInactiveInterval();D.session.setAttribute(“time”,30);100、sesson对象的()方法用于判断是否为开始新会话。DA.begin()B.isNewSessionID()C.invalidate()D.isNew()简答题(9题)1、jsp有哪些内置对象?作用分别是什么?答:JSP共有以下9种基本内置组件(可与ASP的6种内部组件相对应):1)request用户端请求,此请求会包含来自GET/POST请求的参数2)response网页传回用户端的回应3)pageContext网页的属性是在这里管理4)session与请求有关的会话期5)applicationservlet正在执行的内容6)out用来传送回应的输出7)configservlet的构架部件8)pageJSP网页本身9)exception针对错误网页,未捕捉的例外2.jsp有哪些动作?作用分别是什么?答:JSP共有以下6种基本动作1)jsp:include:在页面被请求的时候引入一个文件。2)jsp:useBean:寻找或者实例化一个JavaBean。3)jsp:setProperty:设置JavaBean的属性。4)jsp:getProperty:输出某个JavaBean的属性。5)jsp:forward:把请求转到一个新的页面。6)jsp:plugin:根据浏览器类型为Java插件生成OBJECT或EMBED标记 3.forward和redirect的区别答:1)forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。2)redirect就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求,所以session,request参数都可以获取。4.JSP中动态INCLUDE与静态INCLUDE的区别?答:动态INCLUDE用jsp:include动作实现它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数静态INCLUDE用include伪码实现,定不会检查所含文件的变化,适用于包含静态页面<%@includefile="included.htm"%>5.两种跳转方式分别是什么?有什么区别?答:有两种,分别为:前者页面不会转向include所指的页面,只是显示该页的结果,主页面还是原来的页面。执行完后还会回来,相当于函数调用。并且可以带参数.后者完全转向新页面,不会再回来。相当于goto语句。6.JSP的内置对象及方法。答:1)request表示HttpServletRequest对象。它包含了有关浏览器请求的信息,并且提供了几个用于获取cookie,header,和session数据的有用的方法。2)response表示HttpServletResponse对象,并提供了几个用于设置送回浏览器的响应的方法(如cookies,头信息等)3)out对象是javax.jsp.JspWriter的一个实例,并提供了几个方法使你能用于向浏览器回送输出结果。4)pageContext表示一个javax.servlet.jsp.PageContext对象。它是用于方便存取各种范围的名字空间、servlet相关的对象的API,并且包装了通用的servlet相关功能的方法。5)session表示一个请求的javax.servlet.http.HttpSession对象。Session可以存贮用户的状态信息6)applicaton表示一个javax.servle.ServletContext对象。这有助于查找有关servlet引擎和servlet环境的信息7)config表示一个javax.servlet.ServletConfig对象。该对象用于存取servlet实例的初始化参数。8)page表示从该页面产生的一个servlet实例7、JSP中动态INCLUDE与静态INCLUDE的区别?答:动态INCLUDE用jsp:include动作实现它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数。静态INCLUDE用include伪码实现,定不会检查所含文件的变化,适用于包含静态页面指令<%@includefile="included.htm"%> 8、JSP的常用指令?答:<%@pagelanguage=”java”contenType=”text/html;charset=gb2312”session=”true”buffer=”64kb”autoFlush=”true”isThreadSafe=”true”info=”text”errorPage=”error.jsp”isErrorPage=”true”isELIgnored=”true”pageEncoding=”gb2312”import=”java.sql.*”%>isErrorPage(是否能使用Exception对象),isELIgnored(是否忽略表达式)<%@includefile=”filename”%><%@taglibprefix=”c”uri=”http://……”%>9、jsp的四种范围答:a)page代表与一个页面相关的对象和属性。一个页面由一个编译好的Javaservlet类(可以带有任何的include指令,但是没有include动作)表示。这既包括servlet又包括被编译成servlet的JSP页面b)request是是代表与Web客户机发出的一个请求相关的对象和属性。一个请求可能跨越多个页面,涉及多个Web组件(由于forward指令和include动作的关系)c)session是是代表与用于某个Web客户机的一个用户体验相关的对象和属性。一个Web会话可以也经常会跨越多个客户机请求d)application是是代表与整个Web应用程序相关的对象和属性。这实质上是跨越整个Web应用程序,包括多个页面、请求和会话的一个全局作用域Servlet选择题(41题)1、有两个Servlet:servlet1和servlet2,servlet1把HttpServletRequest和HttpServletResponse成功发送到servlet2,在servlet1中有如下代码:IntegerI=newInteger(10);request.setAttribute("x",I);以下是在servlet2中对属性x操作的代码,正确的是:bceA.Integery=request.getAttribute("x");B.Objecty=request.getAttribute("x");C.inty=((Integer)request.getAttribute("x")).intValue();D.Integery=(Integer)request.getAttribute(x);E.request.removeAttribute("x");2、在web.xml中,有如下代码:30对于以下描述,正确的是:bA.定义了默认的会话超时时长。时长为30秒。B.可以使用HttpSession接口的getMaxInactiveInterval()方法把该值取出来。 C.定义了默认的会话超时时长。时长为30小时。D.可以使用Session类的getMaxInactiveInterval()方法把该值取出来。3、对于自己编写的Servlet1,以下对Servlet1的定义正确的是:abcA.classServlet1implementsjavax.servlet.ServletB.classServlet1extendsjavax.servlet.GenericServletC.classServlet1extendsjavax.servlet.http.HttpServletD.classServlet1extendsjavax.servlet.ServletRequest4、对于简单属性来说,Bean工具是这样找出属性的:dA.如果有XX方法,则暗指有一个名为“XX”的属性。B.如果有一个方法名为isX,则通常暗指“X”是一个布尔属性。C.如果有一个方法名为isNotX,则通常暗指“X”是一个布尔属性。D.如果有setX和getX方法,则暗指有一个名为“X”的属性。5、如下代码在Servlet1.java中。importjavax.servlet.*;importjavax.servlet.http.*;importjava.io.IOException;importjava.io.PrintWriter;publicclassServlet1extendsHttpServlet{publicvoidinit()throwsServletException{}publicvoidservice(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{PrintWriterout=response.getWriter();out.println("hello!");}}假如编译Servlet要具备的环境都已经建立好。现在用完全正确的命令编译该文件,对于以下陈述正确的是:bA.编译该文件时会提示缺少doGet()或者doPost()方法,编译不能够成功通过B.编译后,把Servlet1.class放在正确位置,在浏览器中查看该Servlet1,会看到输出文字:hello!。C.编译后,把Servlet1.class放在正确位置,在浏览器中查看该Servlet1,却看不到任何输出的文字。D.编译后,把Servlet1.class放在正确位置,在浏览器中查看该Servlet1,却看到产生运行时错误的出错信息。6、my.html把请求传递到Servlet:myservlet。My.html文件如下:sample1sample2 在myservlet中,使用哪个方法,可以查看到用户在浏览my.html时选择的所有值。AA.getParameterValues方法B.getParameter方法C.getQueryString方法D.getAttribute方法7、在J2EE中,对于HttpServlet类的描述,正确的是()。(选择三项)BCDA.我们自己编写的Servlet继承了HttpServlet类,一般只需要覆盖doPost或者doGet方法,不必覆盖service()方法。因为一个service()方法是空的B.HttpServlet类扩展了GenericServlet类,实现了GenericServlet类的抽象方法service()C.HttpServlet类有两个service()方法D.我们自己编写的Servlet继承了HttpServlet类,一般只需要覆盖doPost或者doGet方法,不必覆盖service()方法。因为一个service()方法会调用doPost或者doGet方法8、在J2EE中,在web.xml中有如下代码段:…………………listOrderscom.mycompany.myactions.ListOrdersAction…………………其中,省略号表示省略了一些代码。在Servlet中()把初始化参数listOrders的值:com.mycompany.myactions.ListOrdersAction取出来。(选择一项)CA.使用Servlet的getInitParameter(“listOrders”)方法B.使用ServletContext的getInitParameter(“listOrders”)方法C.使用ServletConfig的getInitParameter(“listOrders”)方法D.使用ServletRequest的getInitParameter(“listOrders”)方法9、在J2EE中,当用户在浏览器中输入:http://localhost:8080/myWebApp/start/,就会调用student这个Servlet,可以在Web.xml中()配置。(选择一项)CA./start/*studentB.student/start/*C.studentstudent student/start/*D.ststudentstudent/start/*10、在J2EE中,Servlet从实例化到消亡是一个生命周期。下列描述正确的是()。(选择两项)BDA.在典型的Servlet生命周期模型中,每次Web请求就会创建一个Servlet实例,请求结束Servlet就消亡了B.init()方法是容器调用的Servlet实例的第一个方法C.在包容器把请求创送给Servlet之后,和在调用Servlet实例的doGet或者doPostD.方法之前,包容器不会调用Servlet实例的其他方法E.在Servlet实例消亡之前,包容器调用Servlet实例的destroy()方法11、在J2EE中,在web.xml有如下代码段:teacherteacherCart在Servlet中()把servlet名:teacher取出来。(选择一项)BA.使用Servlet的getServletName方法B.使用ServletConfig的getServletName方法C.使用ServletContext的getServletName方法D.使用ServletRequest的getServletName方法12、在J2EE中,有如下代码在Servlet1.java中,importjavax.servlet.*;…importjava.io.PrintWriter;publicclassServletextendsHttpServlet{publicvoidinit()throwsServletException{}publicviodservice(HttpServletRequestrequest,HttpSevvletResponseresponse)throwsServletException,IOException{PrintWriterout=response.getWriter();Out.println(“hello!”)}}假如编译Servlet要具备的环境都已经建立好.现在用完全正确的命令编译文件, 对于以下陈述正确的是().(选择一项)BA.编译该文件时会提示缺少doGet()或者doPost()方法,编译不能够成功通过B.编译后,在浏览器中查看该Servlet1,会看到输出文字:“hello!”C.编译后,在浏览器中查看该Servlet1,却看不到输出的文字D.编译后,在浏览器中查看该Servlet1,却看到产生运行时错误的出错信息13、在J2EE中,ServletResponse的()方法可以返回在应答中写入二进制数据的对象,()方法可以返回应答中发送字符文本的对象.(选择一项)AA.getOutputStream()和getWrite()方法B.getWrite()和getOutputStream()方法C.getInputStream()和getPrint()方法D.getStream()和getPrint()方法14、在J2EE中,Servlet1的代码如下:importjavax.servlet.*;…importjava.io.*;publicclassServlet1extendsHttpServlet{publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponsethrowsServletException,IOException{response.setContentType(“text/html”);PrintWriterout=response.getWriter();Stringbb=request.getQueryString();Stringbb=request.getMethod();outprintln(aa);out.println(bb);}}把Servlet.class文件放在Web服务器适合的目录下,在浏览器地址栏内输入:http://localhost:8080/sevrvlet/Servlet1?name=isoftstone&phone=12345678,看到的结果是().(选择一项)AA.name=isoftstone&phone=12345678GETB.name=isoftstone,phone=12345678GETC.isoftstone,12345678POSTD.name,phoneGET15、在J2EE中,对于HttpServlet类的描述,不正确的是().(选择一项)AA.我们自己编写的Servlet继承了HttpServlet类,一般只需覆盖doPost或者doGet方法,不必覆盖sevrvice()方法.因为一个sevrvice()方法是空的B.HttpServlet类扩展了GenericServlet类,实现了GenericServlet类的抽象方法sevrvice()C.HttpServlet类有两个sevrvice()方法D.我们自己编写的Servlet继承了HttpServlet类,一般只需覆盖doPost或者doGet方法,不必覆盖sevrvice()方法.因为一个sevrvice()方法会调用doPost或者doGet方法 16、在J2EE中,在web.xml有如下代码段:webmastermyaddress@mycompany.com在Servlet中()把webmaster的值:myaddress@mycompany.com取出来。(选择一项)BA.使用RequestDispatcher的getInitParameter(“webmaster”)方法B.使用ServletContext的getInitParameter(“webmaster”)方法C.使用ServletConfig的getInitParameter(“webmaster”)方法D.使用GenericServlet的getInitParameter(“webmaster”)方法17、在J2EE中,对于在Servlet如何获得会话,描述正确的是()。(选择两项)ACA.HttpServletRequest类的getSession方法有两个:带参数的getSession方法和不带参数的getSession方法B.在servlet中,可以使用HttpSessionsession=newHttpSession()创建session对象C.如果HttpServletRequest类的getSession方法的参数为false,表示如果没有与当前的请求相联系的会话对象时,该方法返回nullD.如果HttpServletRequest类的getSession方法的参数为true,表示如果没有与当前的请求相联系的会话对象时,该方法返回null18、从以下哪一个选项中可以获得Servlet的初始化参数。(选择1项)CA.ServletB.ServletContextC.ServletConfigD.GenericServlet19.在Servlet处理请求的方式为。(选择1项)CA.以进程的方式B.以程序的方式C.以线程的方式D.以响应的方式20.用于调用存储过程的对象是。(选择1项)CA.ResultSetB.DriverManagerC.CallableStatemetD.PreparedStatement21.下面哪一个标记与Servlet的配置无关(选择1项)DA.servlet-mappingB.servlet-classC.url-patternD.tag22.与HttpSessionListener接口有关的方法是。(选择2项)BD A.SessionInitialized()B.SessionCreated()C.SessionFinialized()D.SessionDestroyed()23.HttpServlet中,用来处理GET请求的方法是。(选择1项)BA.doHeadB.doGetC.doPostD.doPut24.在Servlet的生命周期中,容器只调用一次的方法是(选择1项)DA.serviceB.getServletConfigC.afterD.init25.当Web应用程序被关闭时,Servlet容器会调用ServletContext“监听器”的哪个方法?(选择1项)BA.contextInitialized()B.contextDestroyed()C.contextFinialized()D.contextShutdown()26.在J2EE中属于Web层的组件有。(选择1项)AA.ServletB.EJBC.AppletD.HTML27、在JavaEE中,HttpServletRequest对象是由()创建的。(选1项)BA.由Servlet容器负责创建,对于每个HTTP请求,Servlet容器都会创建一个HttpServletRequest对象B.由JavaWeb应用的Servlet或JSP组件负责创建,当Servlet或JSP组件响应HTTP请求时,先创建HttpServletRequest对象C.由程序员通过编码形式创建,以传递请求数据D.以上都不对28、在javax.servlet.http.*API中,HttpServlet的()方法用来处理客户端的请求。(选2项)BCA.Init()B.doPost()C.doGet()D.destroy()29、某JavaWeb应用的上下文路径是root,配置文件web.xml中有如下片段,则以下说法正确的是()。(选2项)AD processslt.ProcessServletprocess/procA.在包slt中,有一个名为ProcessServlet.class的文件B.该Servlet的访问路径是http://机器IP:端口号/root/processC.该Servlet的访问路径是http://机器IP:端口号/root/ProcessServletD.该Servlet的访问路径是http://机器IP:端口号/root/proc30、Servlet是一个在服务器上运行、处理请求信息并将其发送到客户端的Java程序。()接受服务请求、找到Servlet类、加载Servlet类并创建Servlet对象。(选1项)CA.客户端B.IE浏览器C.Servlet容器D.Servlet本身31、MVC设计模式包含模型层、视图层和控制器层,在下列组件中扮演控制器角色的是()。(选1项)AA.ServletB.JSPC.JavaBeanD.HTML32、在JavaWeb应用程序中,包含两个名为Servlet1和Servlet2的HttpServlet,在web.xml中指定Servlet2的访问路径为“/Servlet2”,Servlet1的doGet方法中的代码为:PrintWriterout=response.getWriter();out.print(“Servlet”);RequestDispatcherdispatcher=request.getRequestDispatcher(“/servlet2”);dispatcher.forward(request,response);out.close();Servlet2的doGet方法中的代码为:PrintWriterout=response.getWriter();out.print(“Servlet2”);out.close();如果用户在浏览器中访问Servlet1,则浏览器将()。(选1项)DA.显示“Servlet1”B.显示“Servlet2”C.显示“Servlet1Servlet2”D.什么也不显示33、在JavaWeb应用程序中,给定某Servlet程序的代码如下所示:publicclassServlet1extendsHttpServlet{publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ System.out.printIn(“get”);}publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{System.out.printIn(“post”);doGet(request,response);}}用户在浏览器地址栏中键入正确的请求URL并回车后,在控制台上显示的结果是()。(选1项)AA.getB.postC.getpostD.postget34、HTTP协议的全称是()。CA.HypertextTransportProtocolB.HypertextTransportProtocolC.HypertextTransferProtocolD.HypertextTransferProtocol35、在WEB应用程序的目录结构中,在WEB-INF文件夹外的文件为()。AA..jsp文件B..class文件C..jar文件D.web.xml文件36、在Servlet中,下列语句可以正确获取PrintWriter对象的是()。CA.PrintWriterout=request.getWriter();B.PrintWriterout=request.getPrintWriter();C.PrintWriterout=response.getWriter();D.PrintWriterout=response.getPrintWriter();37、编写Servlet的doPost方法时,需要抛出异常为()。AA.ServletException,IOExceptionB.ServletException,RemoteExceptionC.HttpServletException,IOExceptionD.HttpServletException,RemoteException38、如果在web.xml里有如下配置,则在webapp下的jsp里能提交到该Servlet的正确语句是()。Amyservletcom.jbaptech.accp.newspublish.servlet.MyServlet myservlet/myservletA.B.C.D.39、Servlet服务结束时,Servlet会调用()方法去释放资源。CA.free()B.free(ServletConfigconfig)C.destroy()D.destroy(ServletConfigconfig)40、在Servlet里,能实现重定向的方法有()。BCA.运用javax.servlet.http.HttpServletRequest接口的sendRedirect方法B.运用javax.servlet.http.HttpServletResponse接口的sendRedirect方法C.运用javax.servlet.RequestDispatcher接口的forward方法D.运用javax.servlet.ResponseDispatcher接口的forward方法41、利用JavaMailAPI发送邮件的过程中,()能获取正确的session对象。BA.Sessionmailsession=Session.getInstance();B.Sessionmailsession=Session.getInstance(objProperties);C.Sessionmailsession=request.getSession();D.Sessionmailsession=request.getInstance(objProperties);简答题(17题)1、说一说Servlet的生命周期?答:servlet有良好的生存期的定义,包括加载和实例化、初始化、处理请求以及服务结束。这个生存期由javax.servlet.Servlet接口的init,service和destroy方法表达。Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。2、JAVASERVLETAPI中forward()与redirect()的区别?答: 前者仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;后者则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。所以,前者更加高效,在前者可以满足需要时,尽量使用forward()方法,并且,这样也有助于隐藏实际的链接。在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使用sendRedirect()方法。3.Servlet的基本架构代码片断是什么?答:publicclassServletNameextendsHttpServlet{publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{}publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{}}4.什么情况下调用doGet()和doPost()?答:Jsp页面中的form标签里的method属性为get时调用doGet(),为post时调用doPost()。5.servlet的生命周期是什么?答:web容器加载servlet,生命周期开始。通过调用servlet的init()方法进行servlet的初始化。通过调用service()方法实现,根据请求的不同调用不同的do***()方法。结束服务,web容器调用servlet的destroy()方法。6.如何现实servlet的单线程模式?答:<%@pageisThreadSafe="false"%>7.页面间对象传递的方法是什么?答:request,session,application,cookie等8.四种会话跟踪技术包括哪几项?答:会话作用域ServletsJSP页面描述page否是代表与一个页面相关的对象和属性。一个页面由一个编译好的Javaservlet类(可以带有任何的include指令,但是没有include动作)表示。这既包括servlet又包括被编译成servlet的JSP页面request是是代表与Web客户机发出的一个请求相关的对象和属性。一个请求可能跨越多个页面,涉及多个Web组件(由于forward指令和include动作的关系)session是是代表与用于某个Web客户机的一个用户体验相关的对象和属性。一个Web会话可以也经常会跨越多个客户机请求application是是代表与整个Web应用程序相关的对象和属性。这实质上是跨越整个Web应用程序,包括多个页面、请求和会话的一个全局作用域9.Request对象的主要方法包括哪些?答:setAttribute(Stringname,Object):设置名字为name的request的参数值 getAttribute(Stringname):返回由name指定的属性值getAttributeNames():返回request对象所有属性的名字集合,结果是一个枚举的实例getCookies():返回客户端的所有Cookie对象,结果是一个Cookie数组getCharacterEncoding():返回请求中的字符编码方式getContentLength():返回请求的Body的长度getHeader(Stringname):获得HTTP协议定义的文件头信息getHeaders(Stringname):返回指定名字的requestHeader的所有值,结果是一个枚举的实例getHeaderNames():返回所以requestHeader的名字,结果是一个枚举的实例getInputStream():返回请求的输入流,用于获得请求中的数据getMethod():获得客户端向服务器端传送数据的方法getParameter(Stringname):获得客户端传送给服务器端的有name指定的参数值getParameterNames():获得客户端传送给服务器端的所有参数的名字,结果是一个枚举的实例getParameterValues(Stringname):获得有name指定的参数的所有值getProtocol():获取客户端向服务器端传送数据所依据的协议名称getQueryString():获得查询字符串getRequestURI():获取发出请求字符串的客户端地址getRemoteAddr():获取客户端的IP地址getRemoteHost():获取客户端的名字getSession([Booleancreate]):返回和请求相关SessiongetServerName():获取服务器的名字getServletPath():获取客户端所请求的脚本文件的路径getServerPort():获取服务器的端口号removeAttribute(Stringname):删除请求中的一个属性10.我们在web应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,如何输出一个某种编码的字符串?答:PublicStringtranslate(Stringstr){StringtempStr="";try{tempStr=newString(str.getBytes("ISO-8859-1"),"GBK");tempStr=tempStr.trim();}catch(Exceptione){System.err.println(e.getMessage());}returntempStr;}11.Servlet执行时一般实现哪几个方法?答:publicvoidinit(ServletConfigconfig)publicServletConfiggetServletConfig()publicStringgetServletInfo()publicvoidservice(ServletRequestrequest,ServletResponseresponse)publicvoiddestroy() 12.说出数据连接池的工作机制是什么?答:J2EE服务器启动时会建立一定数量的池连接,并一直维持不少于此数目的池连接。客户端程序需要连接时,池驱动程序会返回一个未使用的池连接并将其表记为忙。如果当前没有空闲连接,池驱动程序就新建一定数量的连接,新建连接的数量有配置参数决定。当使用的池连接调用完成后,池驱动程序将此连接表记为空闲,其他调用就可以使用这个连接。13.Class.forName的作用?答:调用该访问返回一个以字符串指定类名的类的对象。14、什么情况下调用doGet()和doPost()?答:Jsp页面中的form标签里的method属性为get时调用doGet(),为post时调用doPost()。15、servlet的生命周期?答:web容器加载servlet,生命周期开始。通过调用servlet的init()方法进行servlet的初始化。通过调用service()方法实现,根据请求的不同调用不同的do***()方法。结束服务,web容器调用servlet的destroy()方法。16、JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么?答:JSP是Servlet技术的扩展,本质上是Servlet的简易方式,更强调应用的外表表达。JSP编译后是"类servlet"。Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。JSP侧重于视图,Servlet主要用于控制逻辑。17、四种会话跟踪技术?答:cookie,url重写,session,隐藏域Struts选择题(62题)1)在Struts实现的MVC框架中,充当中央控制器的是()。CA.ActionB.EJBC.ActionServletD.JSP 2)在基于Struts框架的Web应用中,下面关于Action类的说法正确的是()。CA.Action类属于模型组件B.Action类主要用来完成实际的业务逻辑C.Action类负责调用模型的方法,更新模型的状态,并帮助控制应用程序的流程D.在Web应用启动时会自动加载所有的Action实例3)在基于Struts框架的Web应用中,下面关于ActionFormBean的说法正确的是()。BDA.ActionFormBean用来完成一些实际的业务逻辑B.Struts框架利用ActionFormBean来进行视图和控制器之间表单数据的传递C.ActionForm负责调用模型的方法,更新模型的状态D.ActionFormBean包含一些特殊的方法,用于验证表单数据以及将其属性重新设置为默认值4)下面对于Struts控制器组件的说法正确的是()。ABA.对于多应用模块的Struts应用,每个子应用都有各自的ActionServlet实例B.在Struts应用的生命周期中,仅创建ActionServlet的一个实例C.Action组件是用户请求和业务逻辑之间的桥梁D.Struts框架中只允许在一个应用中配置一个Action类5)在Struts配置文件中,()元素的processorClass属性用于配置RequestProcessor类。AA.B.C.D.6)Action类的execute方法返回的ActionForward对象name属性必须与struts-config.xml中元素的()属性匹配CA.forwardB.NameC.PathD.Redirect7)在Struts应用中,要在网页上输出personbean对象的userName属性值,下列代码()是正确的。BA.B.C.D.8)以下代码定义了一个Vector类型的集合变量Animals:<%Vectoranimals=newVector();animals.addElement("Dog");animals.addElement("Cat");animals.addElement("Bird");%> 现要求通过标签遍历该集合中的元素,并将每个元素的内容输出到网页中,下列代码正确的是()。BA.
B.
C.
D.
9)分析ActionFormBean的validate方法:publicActionErrorsvalidate(ActionMappingactionMapping,HttpServletRequesthttpServletRequest){ActionErrorserrors=newActionErrors();if((userName==null)||(userName.length()<1)){}returnerrors;}以上方法完成的功能为:若用户没有在表单中输入姓名就提交表单将生成表单验证错误。在下划线上填入()。BA.errors.add("username");B.errors.add("username",newActionMessage("Enterusername"));C.errors.add(newActionMessage("Enterusername"),"username");D.errors.add(ActionMessage("Enterusername"));10)Validator框架采用配置文件()来配置验证规则。AA.validator-rules.xmlB.web.xmlC.validation.xmlD.struts-config.xml11)在Struts应用程序的JSP页面上,使用html:optionsCollection标签初始化从数据库查询得到的下拉列表框选择项,该标签的()属性表示将要显示的数据集合。(选1项)DA.nameB.labelC.valueD.property12)浏览Web不使用Struts错误处理机制的步骤包括以下几步,他们的正确顺序是()。(选1项)D1.修改对应的Action代码 1.编辑属性文件2.在页面上显示报错信息A.123B.132C.312D.21313)在Struts中,()选项中的作法能够正确定义ActionBean。(选1项)A.继承自ActionBean类B.继承自ActionForm类C.继承自DispatchAction类D.在Struts配置文件中直接配置得到14)在Struts中可以使用实体对象作为Form的属性,现要定义ActionForm的子类TestForm,它的属性为实体类型TestBean的对象,那么下列选项中的代码正确的是()。(选1项)AA、publicclassTestFormextendsActionForm{privateTestBeanbean=newTestBean();publicTestBeangetBean(){returnbean;}publicvoidsetBean(TestBeanbean){this.bean=bean;}}B、publicclassTestFormextendsActionForm{privateTestBeanbean=newTestBean();publicvoidsetBean(TestBeanbean){this.bean;}}C、publicclassTestFormextendsActionForm{privateTestBeanbean=newTestBean();publicTestBeangetBean(){returnbean;}}D、publicclassTestFormextendsActionForm{privateTestBeanbean=newTestBean();}15、在Struts应用程序中,Struts-config.xml配置文件内容如下所示: 则选项中关于上述配置内容的叙述错误的是()。(选1项)CA.TestAction继承自org.apache.struts.action.ActionB.TestAction处理请求后的目标响应页面之一为success.jspC.TestAction处理请求出错时转向的页面为test.jspD.TestAction处理请求的请求均来自test.jsp页面16、在Struts应用程序中,index.jsp中包含如下所示代码:<%String[]language={“JAVA”,”C”,”HTML”,”SQLSERVER”};pageContext.setAttribute(“languages”,language);%>则在index.jsp中添加选项()中的代码能够在页面上显示如下所示的效果:JAVACHTMLSQLSERVER(选1项)CA、
B、
C、
D、
17、在Struts应用程序中,创建了定义报错信息的资源文件后,应在()文件中添加对这个资源文件的引用。(选1项)CA.web.xmlB.ApplicationResources.propertiesC.struts-config.xmlD.ApplicationResources_zh_CN.properties18、在Struts应用程序的JSP页面上,使用()Struts标签初始化从数据库查询得到的下拉列表框选择项。(选1项)DA.html:hiddenB.html:formC.html:textD.html:optionsCollection 19、在Struts中,使用动态Form的好处是()。(选2项)ABA.可以不用再编写ActionForm程序代码,只在Struts配置文件中配置即可B.当业务发生变化,表单提交数据发生变化时只修改Struts配置文件中的配置即可C.在使用动态Form时,只是存储和读取数据的方式和普通ActionForm略有差别D.HTTP请求中的数据不能自动填充到动态Form中20、在Struts应用程序中,定义了DispatchAction类的子类TestAction,那么下列TestAction类的方法中可用于处理请求的是()。(选1项)CA、publicvoidprint{//省略此处代码}B、publicStringprint{//省略此处代码return“success”;}C、publicActionForwardprint(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse){//省略此处代码returnmapping.findForward(“success”);}D、privateActionForwardprint(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse){//省略此处代码returnmapping.findForward(“success”);}21、在使用Struts框架构建应用系统时,在配置文件中出现如下配置信息,此处假设控制器映射为*.do,关于该段配置信息,以下描述中正确的是()。(选2项)CDA.该请求对应的FormBean是app.LogonProcessB.当请求页面的URI是/logon.jsp时,控制器将信息委托app.LogonProcess处理C.当通过/logonSubmit.do提交请求信息的时候,控制器信息委托app.LogonProcess处理D.该action对应的ActionForm的作用域为request22、下面哪一个项目仅在Struts中出现?(选择1项)CA.JavaBean A.Web.xmlB.struts-config.xmlC.application.propertyes23、以下哪些接口能够实现对Web访问者的身份认证?(选择1项)AA.HttpServletRequestB.HttpServletResponseC.HttpSessionD.HttpServlet24、MVC模式中,实现Web应用程序的逻辑流控制主要依靠什么来完成?(选择1项)CA.JavaBeanB.JSPC.ServletD.Html25、在Struts配置文件中,使用什么元素表示ActionForm?(选择1项)BA.formB.form-beanC.form-actionD.actionform26、下面的那一个不属于MVC模式中的对象?(选择1项)CA.ModelB.ViewC.CollectionD.Controller27、下面哪些任务是RequestProcessor完成的?(多选)CDE选项:A.把Struts配置文件信息加载到内存中B.把资源文件信息读入到内存中C.如果需要的话,创建ActionForm实例,组装数据,并进行表单验证D.找到匹配的Action实例,调用其execute()方法E.把请求转发到Action的execute()方法返回的ActionForward代表的组件。28、对于以下代码,HelloAction希望把请求转发给hello.jsp,在HelloAction的execute()方法中如何实现?(多选)AB A.return(newActionForward(mapping.getInput()));B.return(mapping.findForward("SayHello"));C.return(mapping.findForward(“hello.jsp"));29、在Struts应用的视图中包含哪些组件?(多选)AG选项:A.JSPB.ServletC.ActionServletD.ActionE.代表业务逻辑或业务数据的JavaBeanF.EJBG.客户化标签30、在Struts应用的控制器中包含哪些组件?(多选)BCD选项:A.JSPB.ServletC.ActionServletD.ActionE.代表业务逻辑或业务数据的JavaBeanF.EJBG.客户化标签31、在Struts应用的模型中包含哪些组件?(多选)EF选项:A.JSPB.ServletC.ActionServletD.ActionE.代表业务逻辑或业务数据的JavaBeanF.EJBG.客户化标签32、以下代码定义了一个变量,如何输出这个变量的值?(多选)AD选项:A.B.C.<%=stringBean%>D.<%StringmyBean=(String)pageContext.getAttribute(“stringBean”,PageContext.PAGE_SCOPE);%><%=myBean%> 33、把静态文本放在ResourceBundle中,而不是直接在JSP文件中包含这些静态文本,有什么优点?(多选)ABCA.提高可维护性B.提高可重用性C.支持国际化D.提高运行速度34、以下哪些说法是正确的?(单选)C选项:A.每个HTTP请求对应一个单独的ActionServlet实例B.对于每个请求访问HelloAction的HTTP请求,Struts框架会创建一个单独的HelloAction实例。C.每个子应用对应一个单独的RequestProcessor实例D.每个子应用对应一个单独的web.xml文件35、下面哪些任务是RequestProcessor完成的?(多选)CDE选项:A.把Struts配置文件信息加载到内存中B.把资源文件信息读入到内存中C.如果需要的话,创建ActionForm实例,组装数据,并进行表单验证D.找到匹配的Action实例,调用其execute()方法E.把请求转发到Action的execute()方法返回的ActionForward代表的组件。36、对于以下代码,HelloAction希望把请求转发给hello.jsp,在HelloAction的execute()方法中如何实现?(多选)AB选项:A.return(newActionForward(mapping.getInput()));B.return(mapping.findForward("SayHello"));C.return(mapping.findForward(“hello.jsp"));37、对于以下这段配置ActionServlet的代码,哪些说法是正确的?(多选)ABDactionorg.apache.struts.action.ActionServletconfig/WEB-INF/myconfig.xml 2action*.do选项:A.Servlet容器在启动Struts应用时,会初始化这个ActionServlet。B.对于所有URL中以”.do”结尾的HTTP请求,都由ActionServlet处理。C.这段代码位于struts-config.xml中。D.这段代码位于web.xml中。38、下面的那一个不属于MVC模式中的对象?(选择1项)CA.ModelB.ViewC.CollectionD.Controller39、ActionForm在Struts中属于?(选择1项)CA.视图B.控制器C.模型D.配置文件40、ActionForm的作用域包括哪些层次?(选择2项)BDA.serverB.requestC.responseD.session41、ActionServlet在Struts中属于?(选择1项)BA.视图B.控制器C.模型D.配置文件42、Action在Struts中属于?(选择1项)。BA.视图B.控制器C.模型D.配置文件 43、Struts初始化过程调用的第一个方法是?(选择1项)DA.start()B.main()C.submain()D.init()44、下面哪一个项目仅在Struts中出现?(选择1项)CA.JavaBeanB.Web.xmlC.struts-config.xmlD.application.propertyes45、假定Struts-config.xml里有,则以下哪些方法调用是正确的?(选择2项)ACA.returnmapping.findforward(“aaa”);B.returnmapping.findforward(“success”);C.returnmapping.findforward(“ccc”);D.returnmapping.findforward(“error”);46、下面()是框架。DA.JSPB.Struts标签库C.Criteria查询D.DWR47、MVC设计模式的目的是()。CA.使程序结构更清晰B.使程序更好维护C.保证视图和模型的隔离D.逻辑上将视图、模型和控制器分开48、下面信息不在Struts配置文件中配置的是()。BA.FormBean配置信息B.Spring声明式事务C.Action转发路径D.Struts引用的资源文件49、在Struts中,DispatchAction和普通Action的配置不同的是()。BA.需要多配置一个可选的parameter属性B.需要多配置一个必须的parameter属性 A.需要多配置一个可选的method属性B.需要多配置一个必须的method属性50.在Struts中,关于DispatchAction的说法中,错误的是()。BA.访问DispatchAction必须提供parameter参数B.DispatchAction中必须实现execute方法C.DispatchAction可以与Spring进行集成D.D.可通过传入参数的值指定访问DispatchAction中的方法的名称51.下面关于Struts报错机制说法正确的是()。ACA.强制使用国际化B.错误信息保存在session中C.使用标签显示错误信息D.也可以使用显示错误信息52.某ActionBean中有如下代码:errors.add("order_count",newActionMessage("error.biz_ruler.no_storage"));在页面上显示这条错误信息的代码是()。DA.B.C.D.53.某FormBean中有List类型的data属性,则页面显示其数据的代码是()。DA....B....C....D....54.下面代码中,有哪些错误()。CDA.应包含标签B.标签没有指定name属性C.应为D.text="username"应为label="username"55.在三层结构中,数据访问层承担的责任是()。BA.定义实体类B.数据的增删改查操作C.业务逻辑的描述D.页面展示和控制转发 56.下列()是错误的描述。AA.Struts是源代码保密的商用软件B.Struts是开发Web应用的框架系统C.Struts基于MVC设计模式D.Struts是Apache的子工程57.Struts框架的控制器主要由()负责。CA.EJBB.JSP页面C.ActionServlet类D.标签库58.Struts通过()支持MVC模式的视图开发。AA.JSP标签库和FormBeanB.EJBC.ServletD.Applet59.Struts的()标签可以有条件地产生输出文本,在对象集合中循环从而重复地产生输出文本,以及应用程序流程控制。CA.NestedB.BeanC.LogicD.Html60.Struts应用程序的默认配置文件为()。AA.struts-config.xmlB.web.xmlC.ejb-jar.xmlD.sun-web.xml61.Struts使用()捕获表单数据。BA.ActionErrorB.ActionFormC.ActionD.EJB62.下列()不是Web应用开发的框架系统。DA.StrutsB.JSFC.SpringD.JavaMail 简答题(3题)1、Struts工作机制?为什么要使用Struts?答:工作机制:Struts的工作流程:在web应用启动时就会加载初始化ActionServlet,ActionServlet从struts-config.xml文件中读取配置信息,把它们存放到各种配置对象当ActionServlet接收到一个客户请求时,将执行如下流程.-(1)检索和用户请求匹配的ActionMapping实例,如果不存在,就返回请求路径无效信息;-(2)如果ActionForm实例不存在,就创建一个ActionForm对象,把客户提交的表单数据保存到ActionForm对象中;-(3)根据配置信息决定是否需要表单验证.如果需要验证,就调用ActionForm的validate()方法;-(4)如果ActionForm的validate()方法返回null或返回一个不包含ActionMessage的ActuibErrors对象,就表示表单验证成功;-(5)ActionServlet根据ActionMapping所包含的映射信息决定将请求转发给哪个Action,如果相应的Action实例不存在,就先创建这个实例,然后调用Action的execute()方法;-(6)Action的execute()方法返回一个ActionForward对象,ActionServlet在把客户请求转发给ActionForward对象指向的JSP组件;-(7)ActionForward对象指向JSP组件生成动态网页,返回给客户;为什么要用:JSP、Servlet、JavaBean技术的出现给我们构建强大的企业应用系统提供了可能。但用这些技术构建的系统非常的繁乱,所以在此之上,我们需要一个规则、一个把这些技术组织起来的规则,这就是框架,Struts便应运而生。基于Struts开发的应用由3类组件构成:控制器组件、模型组件、视图组件2.Struts的validate框架是如何验证的?答:在struts配置文件中配置具体的错误提示,再在FormBean中的validate()方法具体调用。3.说下Struts的设计模式答:MVC模式:web应用程序启动时就会加载并初始化ActionServler。用户提交表单时,一个配置好的ActionForm对象被创建,并被填入表单相应的数据,ActionServler根据Struts-config.xml文件配置好的设置决定是否需要表单验证,如果需要就调用ActionForm的Validate()验证后选择将请求发送到哪个Action,如果Action不存在,ActionServlet会先创建这个对象,然后调用Action的execute()方法。Execute()从ActionForm对象中获取数据,完成业务逻辑,返回一个ActionForward对象,ActionServlet再把客户请求转发给ActionForward对象指定的jsp组件,ActionForward对象指定的jsp生成动态的网页,返回给客户。 Spring选择题(15题)1、关于spring说法错误的是()?DA.spring是一个轻量级JAVAEE的框架集合B.spring包含一个“依赖注入”模式的实现C.使用spring可以实现声明事务D.spring提供了AOP方式的日志系统2、关于依赖注入说法正确的是()?AA.依赖注入的目标是在代码之外管理程序组建间的依赖关系B.依赖注入即是“面向接口”的编程C.依赖注入是面向对象技术的替代品D.依赖注入的使用会增大程序的规模3、关于AOP错误的是()?CA.AOP将散落在系统中的“方面”代码集中实现B.AOP有助于提高系统可维护性C.AOP已经表现出将要替代面向对象的趋势D.AOP是一种设计模式,Spring提供了一种实现4、关于springAOP错误的是()?AA.首先要编写方面代码,实现MethodBeforeAdvice接口B.AOP采取拦截方法调用方式实现,可以在调用方法前,后,抛出异常时拦截C.AOP采取代理的方式实现,常用代理对象的类别为org.springframework.aop.framework.ProxyFactoryBeanD.AOP可以在对目标(target)不做任何修改的情况下增加程序功能5、在Spring配置文件di.xml中包含下面的配置代码,可以推断()。(选1项)AA.下列语句运行时无异常ApplicationContextcontext=newClassPathXmlApplicationContext(“di.xml”);Aa=(A)content.getBean(“a”);B.A是抽象类C.A是接口D.类A中定义了getM()方法6、关于Struts+Spring+Hibernate集成框架,下列说法正确的是()。(选1项)BA.使用SSH框架开发项目,由于增加了大量配置工作,从而会降低开发的效率B.三个框架可以用多种方式进行集成C.使用SSH框架开发不利于实现复杂的业务逻辑 A.使用SSH框架开发不利于构造复杂的页面和交互流程7、对于Sping和Struts的集成,下列说法错误的是()。(选1项)DA.ActionBean的实例可以由Spring创建B.在Struts配置文件中,ActionBean的配置可以如下所示:C.在Spring配置文件中,ActionBean的配置可以如下所示:D.由于Spring本身也提供了MVC实现,所以不能与Struts集成8、在Spring框架中,面向方面编程(AOP)的目标在于()。(选1项)AA.编写程序时不用关心其依赖组件的实现B.将程序中涉及的公用问题集中解决C.封装JDBC访问数据库的代码,简化数据访问层的重复性代码D.实现页面的“无刷新”9、在Spring中,配置Hibernate事务管理器,(HibernateTransactionManager)时,需要注入的属性名称是()。(选1项)BA.dataSourceB.sessionFactoryC.baseHibernateDaoD.transactionProxyFactoryBean10、在Spring的配置文件中,包含如下所示的配置代码,则下面说法正确的是()。(选2项)ADA.可以通过下列代码获取对象实例:ApplicationContextcontext=newClassPathXmlApplicationContext(“di.xml”);TestBeant=(TestBean)context.getBean(“test.TestBean”);B.TestBean中一定有如下语句:privateStringdp=“”;C.TestBean中一定有方法:publicvoidsetSp(Stringvalue)D.属性dp的类型可能是int也可能是String11.下面关于“依赖注入”的说法,错误的是()。DA.将组件间的依赖关系采取配置文件的方式管理,而不是硬编码在代码中B.降低了组件间的耦合,使程序更容易维护和升级C.促进了“面向接口”编程,使构建大规模程序更轻松D.需要定义大量接口,增加了编码复杂度 12.关于Spring的说法错误的是()。CA.通过setter方法实现依赖注入B.对Hibernate提供了支持,可简化Hibernate编码C.通过AOP可以轻松与Hibernate集成D.通过AOP实现了声明式事务管理13.关于SpringAOP,下面说法错误的是()。CA.支持前置通知、后置通知、环绕通知B.采用代理的方式实现C.在Spring2.0以前的版本中,通过、和配置D.与“依赖注入”实现紧密结合14.对下面Spring声明式事务的配置含义的说明错误的是()。CPROPAGATION_REQUIRED,readOnlyPROPAGATION_REQUIREDA.定义了声明式事务的配置模板B.对get方法采用只读事务C.缺少sessionFactory属性的注入D.配置需要事务管理的bean的代理时,通过parent引用这个配置模板,代码如下:15.下面Spring声明式事务的配置中,存在哪些错误?BDA.应为B.execution(*com.conghai.isale.biz.*(..))应为execution(*com.conghai.isale.biz.*.*(..))C.应为D.pointcut-ref="txAdvice"应为pointcut-ref="bizMethods" 简答题(18题)1、spring工作机制?答:1)springmvc请所有的请求都提交给DispatcherServlet,它会委托应用系统的其他模块负责负责对请求进行真正的处理工作。2)DispatcherServlet查询一个或多个HandlerMapping,找到处理请求的Controller.3)DispatcherServlet请请求提交到目标Controller4)Controller进行业务逻辑处理后,会返回一个ModelAndView5)Dispathcher查询一个或多个ViewResolver视图解析器,找到ModelAndView对象指定的视图对象6)视图对象负责渲染返回给客户端。2、为什么用Spring的工作机制?答:AOP让开发人员可以创建非行为性的关注点,称为横切关注点,并将它们插入到应用程序代码中。使用AOP后,公共服务(比如日志、持久性、事务等)就可以分解成方面并应用到域对象上,同时不会增加域对象的对象模型的复杂性。IOC允许创建一个可以构造对象的应用环境,然后向这些对象传递它们的协作对象。正如单词倒置所表明的,IOC就像反过来的JNDI。没有使用一堆抽象工厂、服务定位器、单元素(singleton)和直接构造(straightconstruction),每一个对象都是用其协作对象构造的。因此是由容器管理协作对象(collaborator)。Spring即使一个AOP框架,也是一IOC容器。Spring最好的地方是它有助于您替换对象。有了Spring,只要用JavaBean属性和配置文件加入依赖性(协作对象)。然后可以很容易地在需要时替换具有类似接口的协作对象。3、Jdo是什么?答:JDO是Java对象持久化的新的规范,为javadataobject的简称,也是一个用于存取某种数据仓库中的对象的标准化API。JDO提供了透明的对象存储,因此对开发人员来说,存储数据对象完全不需要额外的代码(如JDBCAPI的使用)。这些繁琐的例行工作已经转移到JDO产品提供商身上,使开发人员解脱出来,从而集中时间和精力在业务逻辑上。另外,JDO很灵活,因为它可以在任何数据底层上运行。JDBC只是面向关系数据库(RDBMS)JDO更通用,提供到任何数据底层的存储功能,比如关系数据库、文件、XML以及对象数据库(ODBMS)等等,使得应用可移植性更强。4、简述你对IoC(InversionofControl)的理解,答:1)翻转控制,通过容器来找到对象,可以解耦合。2)控制反转(InversionofControl,英文缩写为IoC)是一个重要的面向对象编程的法则来削减计算机程序的耦合问题。3)IoC将创建的职责从应用程序代码搬到了框架中。Spring对Setter注入和构造方法注入提供支持5、简单描述Springframework与Struts的不同之处,整合Spring与Struts有哪些方法,哪种最好,为什么?答:1)spring是完整的一站式框架,而Struts仅是MVC框架,且着重于MVC中的C。Spring有三种方式整合Struts:使用Spring的ActionSupport类整合Struts;使用Spring的DelegatingRequestProcessor覆盖Struts的RequestProcessor;将StrutsAction管理委托给Spring框架,动作委托最好。(详见使用Spring更好地处理Struts动作)。pring2.0新增一种方式:AutowiringRequestProcessor。2) Spring对多种ORM框架提供了很好的支持,简单描述在Spring中使用Hibernate的方法,并结合事务管理?1)在context中定义DataSource,创建SessionFactoy,设置参数;DAO类继承HibernateDaoSupport,实现具体接口,从中获得HibernateTemplate进行具体操作。2)在使用中如果遇到OpenSessionInView的问题,可以添加OpenSessionInViewFilter或OpenSessionInViewInterceptor。声明式事务需声明事务管理器,在context中设置指定属性,用确定和。6、Spring是什么?答:Spring是一个开源框架,它由RodJohnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。7、为什么要使用Spring?答:1)它定位的领域是许多其他流行的framework没有的。Spring关注提供一种方法管理你的业务对象。2)Spring是全面的和模块化的。Spring有分层的体系结构,这意味着你能选择使用它孤立的任何部分,它的架构仍然是内在稳定的。3)它的设计从底部帮助你编写易于测试的代码。Spring是用于测试驱动工程的理想的framework。8、简述spring的组成?答:BeanFactory,BeanWrapper,ApplicationContext,WebContext等9、简述.IoC的类型?答:1)类型1(基于接口):可服务的对象需要实现一个专门的接口,该接口提供了一个对象,可以从用这个对象查找依赖(其它服务)。早期的容器Excalibur使用这种模式。2)类型2(基于setter):通过JavaBean的属性(setter方法)为可服务对象指定服务。HiveMind和Spring采用这种方式。3)类型3(基于构造函数):通过构造函数的参数为可服务对象指定服务。PicoContainer只使用这种方式。HiveMind和Spring也使用这种方式。10、简述Spring容器的功能?答:Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建——基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例——以及它们是如何相互关联的。11、什么是AOP?答:1)面向方面编程:AspectOrientedProgramming2)AOP是OOP的延续,是AspectOrientedProgramming的缩写,意思是面向切面编程。可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。AOP实际是GoF设计模式的延续,设计模式孜孜不倦追求的是调用者和被调用者之间的解耦,AOP可以说也是这种目标的一种实现。12、简述AOP核心? 答:1)Aspect(切面)切面,是对交叉业务逻辑的统称。2)Joinpoint(连接点)连接点,指切面可以织入到目标对象的位置(方法,属性等)。3)Advice(通知)通知,指切面的具体实现。4)Pointcut(切入点)切入点,指通知应用到哪些类的哪些方法或属性之上的规则。5)Introduction(引入)引入,指动态地给一个对象增加方法或属性的一种特殊的通知。6)Weaving(织入)织入,指将通知插入到目标对象。7)Target(目标对象)目标对象,指需要织入切面的对象。8)Proxy(代理对象)代理对象,指切面织入目标对象之后形成的对象。13、说出Spring的通知类型?答:1)Before2)After3)Around4)Throws14、简述ProxyFactoryBean的作用?答:读取资源文件中的设置,把它读取到内存中,可以读取多个资源文件.依照配置信息,将切面应用到目标对象,生成动态代理对象。15、叙述Spring对持久层支持采用的策略?答:1)Spring对持久层“不发明重复的轮子”,即没有重新实现新的持久层方案,对现有持久层方案做封装,更利于使用。2)采用DAO模式3)提供了大量的模板类来简化编程(HibernateDaoSupport,JdbcTemplate等)4)重新设计了一套完善的异常体系结构①类型丰富,细化异常类型②全都是运行时异常(RuntimeException)16、叙述AOP事务的含义?答:事务当作一个切面,动态地织入到目标对象,形成一个代理对象。17、如何简化事务配置?答:使用继承(抽象的Service类)、自动代理。18、简述Spring的事务机制?答:1)Spring支持声明式事务。2)Spring使用事务服务代理和事务管理器(如HibernateTransactionManager)来支持事务服务。3)Spring对事务的边界多了一种嵌套事务(PROPAGATION_NESTED)。 1)PROPAGATION_NESTED:a)如果客户端启动了事务T1,那么Bean启动一个嵌套在T1中的子事务T2;b)如果客户端没有启动事务,那么Bean会启动一个新的事务,类似于REQUIRED_NEWHibernate选择题(37题)1、一般情况下,关系数据模型于对象模型之间有哪些匹配关系?ABCA.表对应类B.记录对应对象C.表的字段对应类的属性D.表之间的参考关系对应类之间的依赖关系2、目前在持久化层领域,实现模式有以下几种:ABCDEA.业务逻辑和数据访问耦合B.主动域对象模式C.ORM模式D.JDO模式E.CMP模式3、HibernateAPI中的接口可以分为以下几类:ABCDA.提供访问数据库的操作的接口,包括session、Transaction、Query接口;B.用于配置Hibernate的接口,Configuration;C.间接接口,使应用程序接受Hibernate内部发生的事件,并作出相关的回应,包括:Interceptor、Lifecycle、Validatable;D.用于扩展Hibernate功能的接口,如UserType、CompositeUserType、IdentifierGenerator接口。4、在Hibernate的关联映射中,单向多对一关联的映射应()。(选1项)A.配置在多的一方的映射中B.配置在单一的一方的映射中C.配置在哪一方均可,但只可在一方配置D.两方均需要配置5、在Hibernate中,实体类的映射文件用于说明实体类和数据库表的映射关系,以及实体类的属性和表字段的映射关系,每个实体类对应映射文件中一个()节点。(选1项)A.idB.classC.tableD.property6、使用Hibernate技术实现数据持久化时,下面()内容不在Hibernate配置文件中配置。(选1项)DA.数据库连接信息 A.数据库类型(dialect)B.show_sql参数C.数据库表和实体的映射信息7、Hibernate对JDBC访问数据库的代码作了封装,从而大大简化了数据访问层的重复性代码,它是针对三层架构中()的解决方案。(选1项)CA.表现层B.业务逻辑层C.持久化层D.数据库系统8、一般情况下,关系数据模型与对象模型之间有哪些匹配关系(多选)ABCA.表对应类B.记录对应对象C.表的字段对应类的属性D.表之间的参考关系对应类之间的依赖关系9、以下关于SessionFactory的说法哪些正确?(多选)BCA.对于每个数据库事务,应该创建一个SessionFactory对象B.一个SessionFactory对象对应一个数据库存储源。C.SessionFactory是重量级的对象,不应该随意创建。如果系统中只有一个数据库存储源,只需要创建一个。D.SessionFactory的load()方法用于加载持久化对象10、Customer类中有一个Set类型的orders属性,用来存放Order订单对象,在Customer.hbm.xml文件中,用哪个元素映射orders属性?AA.B.C.D.11、元素有一个cascade属性,如果希望Hibernate级联保存集合中的对象,casecade属性应该取什么值?(单选)DA.noneB.saveC.deleteD.save-update12、以下哪些属于Session的方法?ABCDFA.load()B.save()C.delete()D.update()E.open()F.close() 13、以下程序的打印结果是什么?(单选)Ctx=session.beginTransaction();Customerc1=(Customer)session.load(Customer.class,newLong(1));Customerc2=(Customer)session.load(Customer.class,newLong(1));System.out.println(c1==c2);tx.commit();session.close();A.运行出错,抛出异常B.打印falseC.打印true14、以下程序代码对Customer的name属性修改了两次:tx=session.beginTransaction();Customercustomer=(Customer)session.load(Customer.class,newLong(1));customer.setName("Jack");customer.setName("Mike");tx.commit();执行以上程序,Hibernate需要向数据库提交几条update语句?(单选)BA.0B.1C.2D.315、在持久化层,对象分为哪些状态?(多选)ACDA.临时状态B.独立状态C.游离状态D.持久化状态16、对于以下程序,Customer对象在第几行变为持久化状态?(单选)DCustomercustomer=newCustomer();//line1customer.setName("Tom");//line2Sessionsession1=sessionFactory.openSession();//line3Transactiontx1=session1.beginTransaction();//line4session1.save(customer);//line4tx1.commit();//line5session1.close();//line6A.line1B.line2C.line3D.line4 A.line5B.line617、下程序,Customer对象在第几行变为游离状态?(单选)FCustomercustomer=newCustomer();//line1customer.setName("Tom");//line2Sessionsession1=sessionFactory.openSession();//line3Transactiontx1=session1.beginTransaction();//line4session1.save(customer);//line4tx1.commit();//line5session1.close();//line6A.line1B.line2C.line3D.line4E.line5F.line618、一种检索策略利用了外连结查询?(单选)CA.立即检索B.延迟检索C.迫切左外连结检索19、Customer类的orders集合采用延迟检索策略,编译或运行以下程序,会出现什么情况(单选)CSessionsession=sessionFactory.openSession();tx=session.beginTransaction();Customercustomer=(Customer)session.get(Customer.class,newLong(1));tx.commit();session.close();IteratororderIterator=customer.getOrders().iterator();A.编译出错B.编译通过,并正常运行C.编译通过,但运行时抛出异常20、HQL与SQL,以下哪些说法正确?(多选)BDA.HQL与SQL没什么差别B.HQL面向对象,而SQL操纵关系数据库C.在HQL与SQL中,都包含select,insert,update,delete语句D.HQL仅用于查询数据,不支持insert,update和delete语句21、事务隔离级别是由谁实现的?(单选)CA.Java应用程序 A.HibernateB.数据库系统C.JDBC驱动程序22、悲观锁与乐观锁,哪个具有较好的并发性能?(单选)BA.悲观锁B.乐观锁23、什么是ORM?答:对象关系映射(Object—RelationalMapping,简称ORM)是一种为了解决面向对象与面向关系数据库存在的互不匹配的现象的技术;简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将java程序中的对象自动持久化到关系数据库中;本质上就是将数据从一种形式转换到另外一种形式。24、Hibernate有哪5个核心接口?答:a)Configuration接口:配置Hibernate,根据其启动hibernate,创建SessionFactory对象;b)SessionFactory接口:初始化Hibernate,充当数据存储源的代理,创建session对象,sessionFactory是线程安全的,意味着它的同一个实例可以被应用的多个线程共享,是重量级、二级缓存;c)Session接口:负责保存、更新、删除、加载和查询对象,是线程不安全的,避免多个线程共享同一个session,是轻量级、一级缓存;d)Transaction接口:管理事务;e)Query和Criteria接口:执行数据库的查询。25、关于hibernate:1)在hibernate中,在配置文件呈标题一对多,多对多的标签是什么;2)Hibernate的二级缓存是什么;3)Hibernate是如何处理事务的;答:1)一对多的标签为;多对多的标签为;2)sessionFactory的缓存为hibernate的二级缓存;3)Hibernate的事务实际上是底层的JDBCTransaction的封装或者是JTA,Transaction的封装;默认情况下使用JDBCTransaction。26、Hibernate的应用(Hibernate的结构)?答://首先获得SessionFactory的对象SessionFactorysessionFactory=newConfiguration().configure().buildSessionFactory();//然后获得session的对象Sessionsession=sessionFactory.openSession();//其次获得Transaction的对象Transactiontx=session.beginTransaction();//执行相关的数据库操作:增,删,改,查session.save(user);//增加,user是User类的对象 session.delete(user);//删除session.update(user);//更新Queryquery=session.createQuery(“fromUser”);//查询Listlist=query.list();//提交事务tx.commit();//如果有异常,我们还要作事务的回滚,恢复到操作之前tx.rollback();//最后还要关闭session,释放资源session.close();27、什么是重量级?什么是轻量级?答:轻量级是指它的创建和销毁不需要消耗太多的资源,意味着可以在程序中经常创建和销毁session的对象;重量级意味不能随意的创建和销毁它的实例,会占用很多的资源。28、数据库的连接字符串?答:MSSQLServer//第二种连接方式Class.forName(“com.microsoft.jdbc.sqlserver.SQLServerDriver”).newInstance();conn=DriverManager.getConnection(“jdbc:Microsoft:sqlserver://localhost:1433;DatabaseName=pubs”,”sa”,””);//OracleClass.forName(“oracle.jdbc.driver.OracleDriver”).newInstance();conn=DriverManager.getConnection(“jdbc:oracle:thin:@localhost:1521:sid”,uid,pwd);//MysqlClass.forName(“org.git.mm.mysql.Driver”).newInstance();conn=DriverManager.getConnection(“jdbc:mysql://localhost:3306/pubs”,”root”,””);处理中文的问题:jdbc:mysql://localhost:3306/pubs?useUnicode=true&characterEncoding=GB231229、事务处理?答:Connection类中提供了3个事务处理方法:a)setAutoCommit(BooleanautoCommit):设置是否自动提交事务,默认为自动提交事务,即为true,通过设置false禁止自动提交事务;b)commit():提交事务;c)rollback():回滚事务。30、JDBC,Hibernate分页怎样实现? 答:方法分别为:1)Hibernate的分页:Queryquery=session.createQuery("fromStudent");query.setFirstResult(firstResult);//设置每页开始的记录号query.setMaxResults(resultNumber);//设置每页显示的记录数Collectionstudents=query.list();2)JDBC的分页:根据不同的数据库采用不同的sql分页语句例如:Oracle中的sql语句为:"SELECT*FROM(SELECTa.*,rownumrFROMTB_STUDENT)WHERErbetween2and10"查询从记录号2到记录号10之间的所有记录31.下面关于数据持久化概念的描述,错误的是()。DA.保存在内存中数据的状态是瞬时状态B.持久状态的数据在关机后数据依然存在C.数据可以由持久状态转换为瞬时状态D.将数据转换为持久状态的机制称为数据持久化32.下面关于Hibernate的说法,错误的是()。CA.Hibernate是一个“对象-关系映射”的实现B.Hibernate是一种数据持久化技术C.Hibernate是JDBC的替代技术D.使用Hibernate可以简化持久化层的编码33.Hibernate配置文件中,不包含下面的()。ABA.“对象-关系映射”信息B.实体间关联的配置C.show_sql等参数的配置D.数据库连接信息34.在Hibernate关系映射配置中,inverse属性的含义是()。BA.定义在节点上,声明要负责关联的维护B.声明在节点上,声明要对方负责关联的维护C.定义在节点上,声明对方要负责关联的维护D.声明在节点上,声明要负责关联的维护35.在使用了Hibernate的系统中,要想在删除某个客户数据的同时删除该客户对应的所有订单数据,下面方法可行的是()。BA.配置客户和订单关联的cascade属性为save-updateB.配置客户和订单关联的cascade属性为allC.设置多对一关联的inverse属性为trueD.设置多对一关联的inverse属性为false36.下面一对多关联的配置中,存在哪些错误()。BD A.inverse属性不可以设置为falseB.cascade属性不可设置为trueC.class="com.x.entity.Order"应为type="com.x.entity.Order"D.column属性不可再节点内设置37.下面创建Criteria对象的语句中正确的是()。DA.Criteriac=query.createCriteria();B.Criteriac=query.addCriteria();C.Criteriac=session.createCriteria();D.Criteriac=session.createCriteria(User.class);简答题(6题)1、Hibernate工作原理及为什么要用?答:原理:1.读取并解析配置文件2.读取并解析映射信息,创建SessionFactory3.打开Sesssion4.创建事务Transation5.持久化操作6.提交事务7.关闭Session8.关闭SesstionFactory为什么要用:1.对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。2.Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。他很大程度的简化DAO层的编码工作3.hibernate使用Java反射机制,而不是字节码增强程序来实现透明性。4.hibernate的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。它支持各种关系数据库,从一对一到多对多的各种复杂关系。2.Hibernate是如何延迟加载?答:1.Hibernate2延迟加载实现:a)实体对象b)集合(Collection)2.Hibernate3提供了属性的延迟加载功能当Hibernate在查询数据的时候,数据并没有存在与内存中,当程序真正对数据的操作时,对象才存在与内存中,就实现了延迟加载,他节省了服务器的内存开销,从而提高了服务器的性能。3.Hibernate中怎样实现类之间的关系?(如:一对多、多对多的关系)答:与类之间的关系主要体现在表与表之间的关系进行操作,它们都市对对象进行操作,我们程序中把所有的表与类都映射在一起,它们通过配置文件中的many-to-one、one-to-many、many-to-many、 4.说下Hibernate的缓存机制答:1.内部缓存存在Hibernate中又叫一级缓存,属于应用事物级缓存2.二级缓存:a)应用及缓存b)分布式缓存条件:数据不会被第三方修改、数据大小在可接受范围、数据更新频率低、同一数据被系统频繁使用、非关键数据c)第三方缓存的实现5.Hibernate的查询方式答:Sql、Criteria,objectcomptositionHql:1、属性查询2、参数查询、命名参数查询3、关联查询4、分页查询5、统计函数6.如何优化Hibernate?答:a)使用双向一对多关联,不使用单向一对多b)灵活使用单向一对多关联c)不用一对一,用多对一取代d)配置对象缓存,不使用集合缓存e)一对多集合使用Bag,多对多集合使用Setf)继承类使用显式多态g)表字段要少,表关联不要怕多,有二级缓存撑腰Ajax选择题(11题)1.AJAX术语是由哪家公司或组织最先提出的?CA.GoogleB.IBMC.AdaptivePathD.DojoFoundation2.以下哪一个Web应用不属于Ajax应用?AA.Hotmail A.GMapsB.FlickrC.WindowsLive3.以下哪个技术不是Ajax技术体系的组成部分?BA.XMLHttpRequestB.DHTMLC.CSSD.DOM4.XMLHttpRequest对象有几个返回状态值?CA.3B.4C.5D.65.下列哪些方法或属性是Web标准中规定的?CA.all()B.innerHTMLC.getElementsByTagName()D.innerText6.以下哪一个CSS属性不属于W3C的CSS2规范?DA.list-style-positionB.min-heightC.floatD.text-overflow7.下列哪个工具不能用来调试浏览器中的JavaScript?BA.MSVisualInterDevB.EclipseC.MSScriptDebuggerD.MozillaVenkman8.关于JavaScript中的函数和对象,下列说法不正确的是:CA.每一个函数都有一个prototype对象。B.函数就是一个特殊类型的对象。C.函数附属于它所附加到的对象上,只能通过该对象访问。D.同一个函数可以被附属到多个对象上。10.创建一个对象obj,该对象包含一个名为"name"的属性,其值为"value"。以下哪一段JavaScript代码无法得到上述的结果?BA.varobj=newObject();obj["name"]="value";B.varobj=newObject(); obj.prototype.name="value";A.varobj={name:"value"};B.varobj=newfunction(){this.name="value";}11.下面Ajax代码中,存在哪些错误()。BCDvarurl="?operate=doCheckUserExists&uname="+uname;xmlHttpRequest=createXmlHttpRequest();xmlHttpRequest.onreadystatechange=haoLeJiaoWo;xmlHttpRequest.open("POST",url,false);xmlHttpRequest.send(url);A.onreadystatechange应为onReadyStateChangeB.发送请求的方式应为GETC.open方法的第三个参数应该是true,因为要异步发送请求D.send方法应该传入null参数,而不是将url当作参数简答题(30题)1、XMLHttpRequest是什么?答:XMLHttpRequest是Ajax技术体系中最为核心的技术最通用的定义为:XmlHttp是一套可以在Javascript、VbScript、Jscript等脚本语言中通过http协议传送或从接收XML及其他数据的一套API。XmlHttp最大的用处是可以更新网页的部分内容而不需要刷新整个页面。(这个功能正是AJAX的一大特点之一:))来自MSDN的解释:XmlHttp提供客户端同http服务器通讯的协议。客户端可以通过XmlHttp对象(MSXML2.XMLHTTP.3.0)向http服务器发送请求并使用微软XML文档对象模型Microsoft?XMLDocumentObjectModel(DOM)处理回应。但是这里需要重点说明的是XMLHTTPRequest目前还不是一个W3C的标准,所以在不同的浏览器上表现也稍有些区别。2、window.ActiveXObject是什么?答:判断是否支持ActiveX控件3、Microsoft.XMLHTTP是什么?答:MSXML中提供了Microsoft.XMLHTTP对象,能够完成从数据包到Request对象的转换以及发送任务。4、在浏览器端如何得到服务器端响应的XML数据?答:通过给XMLHttpRequest对象有一个函数来接受XML数据responseXML5、XMLHttpRequest对象在IE和Firefox中创建方式有没有不同? 答:IE:actionvara=newActionXObject(“Microsoft.XMLHTTP”);FIREFOX:vara=newXMLHttpRequest();6、介绍一下XMLHttpRequest对象的常用方法?答:Xhr.statusXhr.sendXhr.openXhr.onreadystatechangexhr.readyStategetResponseHeaderopensend7、介绍一下XMLHttpRequest对象的属性?答:onreadystatechangereadyStateresponsebodyresponsestreamresponsetextonreadystatechange8、叙述Ajax的优点和缺点?答:AJAX的优点: 1)不必更新全部网页,可更新部份页面。通过异步模式,提升了用户体验。2)优化了browser和server之间的沟通,减少不必要的数据传输、时间及降低网络上数据流量。3)平衡了前、后端的负载,原本数据大多由后端负责处理,借由AJAX让客户端分担些工作,减低了后端的负载。AJAX的缺点: 1)browser的通用性,每个user端的浏览器不尽相同、版本也不一致,有可能会造成无法动作问题。 2)客户端会过肥,太多程序代码在客户端也会造成开发上的成本。3)可能会暴露服务端,有可能被恶意攻击、窜改,而造成安全上的漏洞。9、什么是XML?答:XML代表ExtensibleMarkupLanguage(eXtensibleMarkupLanguage的缩写,意为可扩展的标记语言)。XML是一套定义语义标记的规则,这些标记将文档分成许多部件并对这些部件加以标识。它也是元标记语言,即定义了用于定义其他与特定领域有关的、语义的、结构化的标记语言的句法语言。XML是元标记语言。关于XML要理解的第一件事是,它不只是像超文本标记语言(HypertextMarkupLanguage,HTML)或是格式化的程序。这些语言定义了一套固定的标记,用来描述一定数目的元素。 10、叙述DWR框架?答:DWR是DirectWebRemoting的缩写。让前台开发的程序员,像使用本地javascript对象一样,去使用服务器端的java对象,而不必去关系网络传输和参数类型的转化细节。它的基本的实现思想是这样的:通过代理模式,对于服务器段的一个javaBean,在客户端生产一个对应的对象,两个对象的方法是一一对应方法。11、叙述ajax的4个基本原则?答:a)浏览器中的是应用而不是内容b)服务器交付的是数据而不是内容c)用户交流变得流畅而连续d)有纪律的严肃编程12、为什么需要ajax的富客户端?答:富”是指客户端的交互模型,要有多样化的输入方式和符合直觉的及时反馈手段。1)比较用户体验2)网络延迟3)异步交互4)独占或瞬态的使用模式5)忘掉Web13、ajax有什么组成,各组件作用是什么?答:由JavaScript、CSS、DOM、XMLHttpRequest组成。JavaScript:将所有的东西绑定在一起。CSS:级联样式表DOM:进行动态显示及交互。XMLHttpRequest:进行异步数据查询、检索。14、写出ajax的编程六步骤?答:a)触发一个事件b)创建一个XMLHttpRequest请求c)打开一个链接d)处理请求函数e)发送请求15、ajax中向服务器发送消息的get和post有什么区别?答:a)get:参数以URL方式进行提交,参数用来提交给服务器看,需要服务器端主动拿取。get不安全,而且URL长度有限制,编码问题也会出现。b)post:参数包含在请求体中提交,服务器端直接从请求中获得数据。 16、DWR编程三要素?答:1)dwr提供一个Servlet;a.接受客户端代理发过来的请求,并按照请求的不同去执行相应的javabean;b.负责生成客户端需要的.js文件,js文件中会有代码对象的声明和定义;2)客户端的一些js文件:a)声明代理对象的js文件.b)声明工具性函数的.js文件;3)配置文件dwr.xml;(和web.xml放在一起.即:WEB-INF/)配置DWR框架,那些javabean需要生成代理.17、解释AJAX?答:a)Ajax的全称是:AsynchronousJavaScript+XMLb)Ajax不是一个技术,它实际上是几种技术,每种技术都有其独特这处,合在一起就成了一个功能强大的新技术。c)Ajax(AsynchronousJavaScriptandXML)是结合了Java技术、XML以及JavaScript等编程技术,可以让开发人员构建基于Java技术的Web应用,并打破了使用页面重载的惯例。d)Ajax是使用客户端脚本与Web服务器交换数据的Web应用开发方法。这样,Web页面不用打断交互流程进行重新加裁,就可以动态地更新。使用Ajax,用户可以创建接近本地桌面应用的直接、高可用、更丰富、更动态的Web用户界面。18、写出AJAX中处理从服务器得到的数据的两种方式?答:(1)以文本字符串的方式返回服务器的响应(2)以XMLDocument对象方式返回响应19、什么是JSON?答:JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgrammingLanguage,StandardECMA-2623rdEdition-December1999的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C,C++,C#,Java,JavaScript,Perl,Python等)。这些特性使JSON成为理想的数据交换语言。20、写出JSON的具体形式?答:1)对象是一个无序的“‘名称/值’对”集合。一个对象以“{”开始,以“}”结束。每个“名称”后跟一个“:”,“‘名称/值’对”之间使用“,”分隔。2)数组是值(value)的有序集合。一个数组以“[”开始,“]”结束。值之间使用“,”分隔。3)值(value)可以是双引号括起来的字符串(String)、数值(number)、true、false、null、对象(object)或者数组(array)。这些结构可以嵌套。4)字符串(string)是由双引号包围的任意数量Unicode字符的集合,使用反斜体转义。一个字符(character)即一个单独的字符串(characeterstring).21、写出JSON的构建的结构? 答:1)“名称/值”对的集合(Acollectionofname/valuepairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hashtable),有键列表(keyedlist),或者关联数组(associativearray)。 2)值的有序列表(Anorderedlistofvalues)。在大部分语言中,它被理解为数组(array)。3)这些都是常见的数据结构。事实上大部分现代计算机语言都以某种形式支持它们。这使得一种数据格式在同样基于这些结构的编程语言之间交换成为可能。22、现假设有一个用户数据包括:用户名、密码、所在部门、性别、年龄。用XML表示如下: 张三 123456 技术部 男 30 用JSON表示出?答:{ "name":"张三", "password":"123456", "department":"技术部", "sex":"男", "old":"30"}23、写出JSON与XML的区别?答:1)可读性 JSON和XML的可读性可谓不相上下,一边是建议的语法,一边是规范的标签形式,很难分出胜负。 2)可扩展性 XML天生有很好的扩展性,JSON当然也有,没有什么是XML能扩展,JSON不能的。 3)编码难度 XML有丰富的编码工具,比如Dom4j、JDom等,JSON也有json.org提供的工具,但是JSON的编码明显比XML容易许多,即使不借助工具也能写出JSON的代码,可是要写好XML就不太容易了。 4)解码难度 XML的解析得考虑子节点父节点,让人头昏眼花,而JSON的解析难度几乎为0。这一点XML输的真是没话说。5)实例比较XML和JSON都使用结构化方法来标记数据。与XML一样,JSON也是基于文本的,且它们都使用Unicode编码,同样具有可读性。XML比较适合于标记文档,而JSON却更适合于时行数据交换处理。24、为什么要用JSON? 答:第一,方便前台数据操作。第二,数据体积小,传输快。第三,客户端操纵XML的时候需要创建ActiveX对象,JSON则完全就是一个JS对象,不需要创建DOM。25、JavaScript中什么是prototype原型对象?答:在JavaScript中,prototype对象是实现面向对象的一个重要机制。每个函数就是一个对象(Function),函数对象都有一个子对象prototype对象,类是以函数的形式来定义的。prototype表示该函数的原型,也表示一个类的成员的集合。在通过new创建一个类的实例对象的时候,prototype对象的成员都成为实例化对象的成员。26、prototype有什么作用?答:1)该对象被类所引用,只有函数对象才可引用;2)在new实例化后,其成员被实例化,实例对象方可调用。同时,函数是一个对象,函数对象若直接声明成员,不用被实例化即可调用。3)是为了继承服务27、什么是Dojo?答:Dojo是一个用JavaScript语言实现的开源DHTML工具包。它是在几个项目捐助基础上建立起来的(nWidgets,Burstlib,f(m)),这也是为什么叫它aunifiedtoolkit的原因。Dojo的目标是解决开发DHTML应用程序遇到的那些、长期存在、历史问题,以及DHTML跨浏览器问题。28、Dojo有以下的特征?答:1)利用Dojo提供的组件,你可以提升你的web应用程序可用性、交互能力以及功能上的提高。 2)也可以更容易的建立互动的用户界面。同时Dojo提供小巧的动态处理工具。 3)利用它的低级API和可兼容的代码,能够写出轻便的、单一风格(复杂)的JavaScript代码。Dojo的事件系统、I/O的API以及通用语言形式是基于一个强大编程环境。 4)通过Dojo提供的工具,你可以为你的代码写命令行式的单元测试代码。5)Dojo的扩展包能够使你自己的代码更容易维护,耦合性更低。29、写出请求的最基本的三种方式?答:get、postput30、叙述JavaScript的好处?答:能够具有交互性,能够包含更多活跃的元素,就有必要在网页中嵌入其它的技术。Javascript的出现使得网页和用户之间实现了一种实时性的、动态的、交互性的关系,使网页包含更多活跃的元素和更加精彩的内容。Javascript短小精悍,又是在客户机上执行的,大大提高了网页的浏览速度和交互能力。同时它又是专门为制作Web网页而量身定做的一种简单的编程语言。JavaScript使网页增加互动性。JavaScript使有规律地重复的HTML文段简化,减少下载时间。JavaScript能及时响应用户的操作,对提交表单做即时的检查,无需浪费时间交由CGI验证。 WebService选择题(7题)1)在WEBSERVICE开发时,订阅者和发布者都需要和()里的实体进行交互。CA.UDDIB.底层类库C.SERVICED.远程接口2)在面向RPC的Web服务中,对于Greeting远程接口来说,当定义其实现类的时候,下述代码片段下划线部分应该是()。DpublicclassGreetingImpimplementsA.EJBObjectB.EJBRemoteC.RemoteD.Greeting3)下列关于WebServices的描述()是错误的。DA.WebServices架构中有三个角色:服务请求者,服务提供者,服务注册处B.服务提供者向服务注册处发布服务的信息C.服务请求者需要向服务注册处查询其需要的服务的信息D.服务请求者需要与服务注册处绑定以消费服务4)WebServices使用基于()的标准和传输协议交换数据。BA.XSLTB.XMLC.TCP/IPD.Java5、在J2EE体系架构中,客户层组件运行在()上。AA.客户机B.J2EE服务器C.数据库服务器D.Web服务器6、J2EE程序可以使用()API查找服务和组件。DA.RMI-IIOPB.JMSC.JDBCD.JNDI7、下列()是描述网络服务的标准XML格式。A A.WSDLB.UDDIC.SOAPD.LDAP简答题(1题)1、WEBSERVICE名词解释。JSWDL开发包的介绍。JAXP、JAXM的解释。SOAP、UDDI,WSDL解释。答:WebService描述语言WSDL SOAP即简单对象访问协议(SimpleObjectAccessProtocol),它是用于交换XML编码信息的轻量级协议。 UDDI的目的是为电子商务建立标准;UDDI是一套基于Web的、分布式的、为WebService提供的、信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的WebService注册,以使别的企业能够发现的访问协议的实现标准。JSF选择题(8题)1)下列()标签是JSF的核心标签。BA.inputTextB.viewC.formD.inputSecret2)JSF的()标签显示一个组件的相关消息。DA.h:errorB.f:messagesC.h:messagesD.h:message3)JSF的ManagedBean的范围不能为()。BDA.requestB.pageC.sessionD.application4)下列()是正确的JSF页面代码片断。DA.B.C.D. 5)在JSF中,h:dataTable的value属性代表的数据类型不能为()。BA.数组B.intC.java.util.ListD.java.sql.ResultSet6)设计一个JSF页面时,需要添加一个控件用于选择产品,从4中产品中唯一的选择一种,下列()标签可以用以显示产品组件。DA.h:selectBooleanCheckboxB.h:selectManyCheckboxC.h:selectManyMenuD.h:selectOneRadio7)JSF与Struts的不同之处为()BA.JSF没有采用MVC模式,Struts采用了MVC模式B.JSF为J2EE5.0的一个Web框架的规范,Struts为一个开源的Web框架C.Struts提供了UIComponent,而JSF没有提供D.用户可以开发可移植的Struts组件,而不能开发自定义的JSF组件8)下列()是正确的JSF代码片断。DA.B.C.D.简答题(0题)EJB选择题(45题)1.EJB是什么?(选择2项)ACA.EnterpriseJavaBean(企业级JavaBean)B.ExtendJavaBean(扩展JaveBean) A.一种分布式组件规范B.一种对于Servlet技术的扩展2.J2EE服务器包含哪两个部分?(选择2项)BCA.JavaBean容器B.EJB容器C.Web容器D.JSP容器3.EJB的优点有哪些?(选择2项)ADA.技术领先B.价格低廉C.性能优越D.强大的容器支持4.以下哪些服务器容器支持EJB?(选择2项)BDA.IISB.WebLogicC.TomcatD.Websphere5.EJB类库存在于Java的哪个版本中?(选择1项)。BA.J2SEB.J2EEC.J2MED.J2NE6.要创建一个EJB,必须要至少编写哪些Java类和接口?(选择3项)ABDA.定义远程(或业务)接口B.定义本地接口C.定义Bean接口D.编写Bean的实现7.EJB是否可以脱离容器而运行?(选择1项)BA.是B.否8.CMP与BMP分别表示什么?(选择1项)BA.CMP表示Bean管理持久性(Persistence),BMP表示容器管理持久性B.CMP表示容器管理持久性(Persistence),BMP表示Bean管理持久性C.CMP表示Bean管理进程(Process),BMP表示容器管理进程D.CMP表示容器管理进程(Process),BMP表示Bean管理进程9.EJB是什么?(选择1项)[B]A.服务器端产品 B.服务器端组件开发架构C.特殊类型的JavaBeanD.用于实现商业逻辑10.EJB架构主要使用的设计模式是什么?(选择2项)[AC]A.Proxy代理B.StrategyC.Delegate委派D.ResponsibilityChain11.EJB的类型主要有什么?(选择3项)[CDF]A.CommandBeanB.DataAccessBeanC.SessionBeanD.EntityBeanE.JavaBeanF.Message-DrivenBean12.EJB3.0中SessionBean的组成可以包括:[ACEFGI]A.HomeinterfaceB.AthreadclassC.RemoteinterfaceD.PrimarykeyclassE.LocalhomeinterfaceF.LocalinterfaceG.ejb-jar.xmlH.application.xmlI.Beanclass13.EJB3.0中EntityBean的组成可以包括:[ACDEFGI]A.HomeinterfaceB.web.xmlC.RemoteinterfaceD.PrimarykeyclassE.LocalhomeinterfaceF.LocalinterfaceG.ejb-jar.xmlH.ejb.xmlI.Beanclass14.SessionBean按是否跟踪客户状态分:[BE]A.StateSessionBeanB.StatelessSessionBeanC.BMTSessionBeanD.CMTSessionBean E.StatefulSessionBean15.EntityBean根据数据持久性的处理方式分:[BC]A.BMTEntityBeanB.BMPEntityBeanC.CMPEntityBeanD.CMTEntityBean16.EntityBean的事务处理方式可采用:[C]A.BMPB.BMTC.CMTD.CMP17.SessionBean和Message-DrivenBean的事务处理方式可采用:[B]A.BMT和CMPB.BMT和CMTC.BMP和CMPD.BMP和CMT18.申明方式的事务处理的属性有:[ACDFGH]A.SupportsB.ShouldC.NotSupportedD.RequiredE.MaybeF.RequiresNewG.MandatoryH.Never19.Localinterface引入的目的是:[B]A.本地客户程序才能调用EJBB.为了性能C.解决SessionBean与EnityBean之间的交互20.Message-DrivenBean的BeanClass必须实现[BC];beanclass中服务方法的签名是[A]A.onMessageB.MessageListenerC.MessageDrivenBean21.EJBContext是EJB与EJBContainer沟通的桥梁,在EJBContext中定义了与安全相关的两个方法是[CE],与事务相关的三个方法是[BFH],与定时服务相关的方法是[G]。A.getEJBLocalHomeB.getRollbackOnlyC.getCallerPrincipal D.getEJBHomeE.isCallerInRoleF.setRollbackOnlyG.getTimerServiceH.getUserTransaction22.有状态SessionBean的beanclass中实现了两个方法[C]和[A]用来完成状态的swapin/out。A.ejbActivate()B.ejbCreate()C.ejbPassivate()D.ejbLoad()E.ejbStore()F.ejbPostCreate()23.EntityBean的beanclass中实现了两个方法[DE]来同步内存与数据库的数据。A.ejbActivate()B.ejbCreate()C.ejbPassivate()D.ejbLoad()E.ejbStore()F.ejbPostCreate()24.在EntityBean的关系管理中,[B]关系需要casecadedelete(级连删除),[A]不能用级连删除。A.Aggregation聚合B.Composition组合25.在编写Message-DrivenBean的实践中,我们使用如下的编程努力来防止有毒消息的产生[BC]A.用Container管理事务B.用Bean管理事务C.不抛出异常D.只抛出RuntimeException26在weblogic(相当于JBOSS或GLASSFISH)上可以部署的模块有[BCD]A.JavabeanmoduleB.WebmoduleC.EnterpriseapplicationmoduleD.EJBmoduleE.Resourceadaptermoudle27.weblogic与EJB相关的部署描述文件有[ABD]A.ejb-jar.xmlB.weblogic-ejb-jar.xmlC.weblogic.xmlD.weblogic-cmp-rdbms-jar.xml 28、下列()接口定义了允许用户创建EJB的方法。DA.EJBObject接口B.local接口C.remote接口D.home接口29、消息驱动Bean通常的动作象一个()。BA.事件侦听器B.JMS消息侦听器C.Swing的按钮D.实体Bean30、下列()是错误的描述。DA.EJB组件具有可移植性B.EJB容器提供了事务管理、安全性、状态管理和持久性服务C.EJB简化了分布式计算D.d)JavaBean是可部署组件31、下列()角色的职责是创建Web模块或EJB组件。BA.部署者B.应用程序组件提供者C.J2EE产品厂商D.d)工具提供者32、下列()描述EJB的相关信息,例如持久化类型和事务属性等。DA.Bean类文件B.远程接口C.本地接口D.部署描述符33、在实体Bean的生命周期中,只有在()方法成功完成后,ejbPostCreate()方法才能被调用。CA.ejbActivate()B.ejbPassivate()C.ejbCreate()D.ejbRemove()34.EJB是什么?:ABCDA.服务器端产品B.服务器端组件开发架构C.特殊类型的JavaBeanD.用于实现商业逻辑35.EJB架构主要使用的设计模式是:AA.ProxyB.Strategy C.DelegateD.ResponsibilityChain36.EJB的类型主要有:CDFA.CommandBeanB.DataAccessBeanC.SessionBeanD.EntityBeanE.JavaBeanF.Message-DrivenBean37.SessionBean按是否跟踪客户状态分:BEA.StateSessionBeanB.StatelessSessionBeanC.BMTSessionBeanD.CMTSessionBeanE.StatefulSessionBean38.EntityBean根据数据持久性的处理方式分:BCA.BMTEntityBeanB.BMPEntityBeanC.CMPEntityBeanD.CMTEntityBean39.EntityBean的事务处理方式可采用:BCA.BMPB.BMTC.CMTD.CMP40.SessionBean和Message-DrivenBean的事务处理方式可采用:BA.BMT和CMPB.BMT和CMTC.BMP和CMPD.BMP和CMT41.Localinterface引入的目的是:AA.本地客户程序才能调用EJBB.为了性能C.解决SessionBean与EnityBean之间的交互42.Message-DrivenBean的BeanClass必须实现___B______和___C_____;beanclass中服务方法的签名是____A_____。A.onMessage B.MessageListenerC.MessageDrivenBean43.对于SessionBean和EntityBean,无论是remotehome或是localhome都必须定义create方法,该方法都会抛出的异常是____C____,remotehome中create方法还会抛出异常_____B___。EntityBean的homeinterface中findByPrimaryKey必须抛出异常___A_____。A.FinderExceptionB.RemoteExceptionC.CreateException44.SessionBean的homeinterface中可定义:AA.createmethod(s)B.Homemethod(s)C.findermethod(s)D.ejbSelectmethod(s)45.EntityBean的homeinterface中可定义:ACA.createmethod(s)B.Homemethod(s)C.findermethod(s)D.ejbSelectmethod(s)简答题(11题)1、EJB与JAVABEAN的区别?答:JavaBean是可复用的组件,对JavaBean并没有严格的规范,理论上讲,任何一个Java类都可以是一个Bean。但通常情况下,由于JavaBea不能被n是被容器所创建(如Tomcat)的,所以JavaBean应具有一个无参的构造器,另外,通常JavaBean还要实现Serializable接口用于实现Bean的持久性。JavaBean实际上相当于微软COM模型中的本地进程内COM组件,它是跨进程访问的。EnterpriseJavaBean相当于DCOM,即分布式组件。它是基于Java的远程方法调用(RMI)技术的,所以EJB可以被远程访问(跨进程、跨计算机)。但EJB必须被布署在诸如Webspere、WebLogic这样的容器中,EJB客户从不直接访问真正的EJB组件,而是通过其容器访问。EJB容器是EJB组件的代理,EJB组件由容器所创建和管理。客户通过容器来访问真正的EJB组件。2、EJB的角色和三个对象答:一个完整的基于EJB的分布式计算结构由六个角色组成,这六个角色可以由不同的开发商提供,每个角色所作的工作必须遵循Sun公司提供的EJB规范,以保证彼此之间的兼容性。这六个角色分别是EJB组件开发者(EnterpriseBeanProvider)、应用组合者(ApplicationAssembler)、部署者(Deployer)、EJB服务器提供者(EJBServerProvider)、EJB容器提供者(EJBContainerProvider)、系统管理员(SystemAdministrator)三个对象是Remote(Local)接口、Home(LocalHome)接口,Bean类3、EJB容器提供的服务答: 主要提供声明周期管理、代码产生、持续性管理、安全、事务管理、锁和并发行管理等服务。4、EJB规范规定EJB中禁止的操作有哪些?答:1.不能操作线程和线程API(线程API指非线程对象的方法如notify,wait等)2.不能操作awt3.不能实现服务器功能4.不能对静态属生存取5.不能使用IO操作直接存取文件系统6.不能加载本地库7.不能将this作为变量和返回8.不能循环调用。5、remote接口和home接口主要作用答:remote接口定义了业务方法,用于EJB客户端调用业务方法。home接口是EJB工厂用于创建和移除查找EJB实例6、bean实例的生命周期答:对于StatelessSessionBean、EntityBean、MessageDrivenBean一般存在缓冲池管理,而对于EntityBean和StatefullSessionBean存在Cache管理,通常包含创建实例,设置上下文、创建EJBObject(create)、业务方法调用、remove等过程,对于存在缓冲池管理的Bean,在create之后实例并不从内存清除,而是采用缓冲池调度机制不断重用实例,而对于存在Cache管理的Bean则通过激活和去激活机制保持Bean的状态并限制内存中实例数量。7、EJB的激活机制答:以StatefulSessionBean为例:其Cache大小决定了内存中可以同时存在的Bean实例的数量,根据MRU或NRU算法,实例在激活和去激活状态之间迁移,激活机制是当客户端调用某个EJB实例业务方法时,如果对应EJBObject发现自己没有绑定对应的Bean实例则从其去激活Bean存储中(通过序列化机制存储实例)回复(激活)此实例。状态变迁前会调用对应的ejbActive和ejbPassivate方法。8、EJB的几种类型答:会话(Session)Bean,实体(Entity)Bean消息驱动的(MessageDriven)Bean会话Bean又可分为有状态(Stateful)和无状态(Stateless)两种实体Bean可分为Bean管理的持续性(BMP)和容器管理的持续性(CMP)两种9、客服端调用EJB对象的几个基本步骤答:设置JNDI服务工厂以及JNDI服务地址系统属性,查找Home接口,从Home接口调用Create方法创建Remote接口,通过Remote接口调用其业务方法。10、EJB的基本架构是什么? 答:一个EJB包括三个部分: RemoteInterface接口的代码:packageBeans;importjavax.ejb.EJBObject;importjava.rmi.RemoteException;publicinterfaceAddextendsEJBObject{//somemethoddeclare} HomeInterface接口的代码:packageBeans;importjava.rmi.RemoteException;importjaax.ejb.CreateException;importjavax.ejb.EJBHome;publicinterfaceAddHomeextendsEJBHome{//somemethoddeclare} EJB类的代码:packageBeans;importjava.rmi.RemoteException;importjavax.ejb.SessionBean;importjavx.ejb.SessionContext;publicclassAddBeanImplementsSessionBean{//somemethoddeclare}11、EJB是基于哪些技术实现的?并说出SessionBean和EntityBean的区别,StatefulBean和StatelessBean的区别。答:EJB包括SessionBean、EntityBean、MessageDrivenBean,基于JNDI、RMI、JAT等技术实现。SessionBean在J2EE应用程序中被用来完成一些服务器端的业务操作,例如访问数据库、调用其他EJB组件。EntityBean被用来代表应用系统中用到的数据。对于客户机,SessionBean是一种非持久性对象,它实现某些在服务器上运行的业务逻辑。对于客户机,EntityBean是一种持久性对象,它代表一个存储在持久性存储器中的实体的对象视图,或是一个由现有企业应用程序实现的实体。SessionBean还可以再细分为StatefulSessionBean与StatelessSessionBean,这两种的SessionBean都可以将系统逻辑放在method之中执行,不同的是StatefulSessionBean可以记录呼叫者的状态,因此通常来说,一个使用者会有一个相对应的StatefulSessionBean的实体。StatelessSessionBean虽然也是逻辑组件,但是他却不负责记录使用者状态,也就是说当使用者呼叫StatelessSessionBean的时候,EJBContainer并不会找寻特定的StatelessSessionBean的实体来执行这个method。换言之,很可能数个使用者在执行某个StatelessSessionBean的methods时,会是同一个Bean的Instance在执行。从内存方面来看,StatefulSessionBean 与StatelessSessionBean比较,StatefulSessionBean会消耗J2EEServer较多的内存,然而StatefulSessionBean的优势却在于他可以维持使用者的状态。WEB服务器选择题(3题)1、Tomcat5.0是一个()容器。BA.EJBB.JSP/ServletC.AppletD.Swing组件2、如果想在tomcat服务器启动时将jar包加载到内存,且该jar包可以被tomcat服务器上所有的应用使用,应该将该jar包复制到tomcat的()目录。CA.common B. serverC.commonlib D. serverlib3、Tomcat服务器的默认端口为()。CA.8888 B. 8001C.8080 D. 80简答题(12题)1、应用服务器有那些?答:BEAWebLogicServer,IBMWebSphereApplicationServer,Oracle9iApplicationServer,jBoss,Tomcat2、如何给weblogic指定大小的内存?答:在启动Weblogic的脚本中(位于所在Domian对应服务器目录下的startServerName),增加setMEM_ARGS=-Xms32m-Xmx200m,可以调整最小内存为32M,最大200M3、EJB需直接实现它的业务接口或Home接口吗,请简述理由。答: 远程接口和Home接口不需要直接实现,他们的实现代码是由服务器产生的,程序运行中对应实现类会作为对应接口类型的实例被使用。5、如何设定的weblogic的热启动模式(开发模式)与产品发布模式?答:可以在管理控制台中修改对应服务器的启动模式为开发或产品模式之一。或者修改服务的启动文件或者commenv文件,增加setPRODUCTION_MODE=true。6、如何启动时不需输入用户名与密码?答:修改服务启动文件,增加WLS_USER和WLS_PW项。也可以在boot.properties文件中增加加密过的用户名和密码.7、在weblogic管理制台中对一个应用域(或者说是一个网站,Domain)进行jms及ejb或连接池等相关信息进行配置后,实际保存在什么文件中?答:保存在此Domain的config.xml文件中,它是服务器的核心配置文件。8、说说weblogic中一个Domain的缺省目录结构?比如要将一个简单的helloWorld.jsp放入何目录下,然的在浏览器上就可打入http://主机:端口号//helloword.jsp就可以看到运行结果了?又比如这其中用到了一个自己写的javaBean该如何办?答:Domain目录服务器目录applications,将应用目录放在此目录下将可以作为应用访问,如果是Web应用,应用目录需要满足Web应用目录要求,jsp文件可以直接放在应用目录中,Javabean需要放在应用目录的WEB-INF目录的classes目录中,设置服务器的缺省应用将可以实现在浏览器上无需输入应用名。9、在weblogic中发布ejb需涉及到哪些配置文件答:不同类型的EJB涉及的配置文件不同,都涉及到的配置文件包括ejb-jar.xml,weblogic-ejb-jar.xml,CMP实体Bean一般还需要weblogic-cmp-rdbms-jar.xml10、如何在weblogic中进行ssl配置与客户端的认证配置或说说j2ee(标准)进行ssl的配置答:缺省安装中使用DemoIdentity.jks和DemoTrust.jksKeyStore实现SSL,需要配置服务器使用EnableSSL,配置其端口,在产品模式下需要从CA获取私有密钥和数字证书,创建identity和trustkeystore,装载获得的密钥和数字证书。可以配置此SSL连接是单向还是双向的。11、如何查看在weblogic中已经发布的EJB?答:可以使用管理控制台,在它的Deployment中可以查看所有已发布的EJB12、说说在weblogic中开发消息Bean时的persistent与non-persisten的差别答: persistent方式的MDB可以保证消息传递的可靠性,也就是如果EJB容器出现问题而JMS服务器依然会将消息在此MDB可用的时候发送过来,而non-persistent方式的消息将被丢弃。 13、什么是web容器答:给处于其中的应用程序组件(JSP,SERVLET)提供一个环境,使JSP,SERVLET直接跟容器中的环境变量交互,不必关注其它系统问题。主要有WEB服务器来实现。例如:TOMCAT,WEBLOGIC,WEBSPHERE等。该容器提供的接口严格遵守J2EE规范中的WEBAPPLICATION标准。我们把遵守以上标准的WEB服务器就叫做J2EE中的WEB容器。XML选择题(70题)1.关于XML声明正确的是(选择1项)BA.B.C.D.<%xmlversion=”1.0”%>2.关于XML的叙述不正确的是(选择1项)AA.XML各元素不需要正确的嵌套B.每个XML只有一个根元素C.XML文档不可以任意开始D.XML区分大小写3.一个XML不一定必须有DTD或Schemas(选择1项)AA.正确B.不正确4.以下说法错误的是()(选择1项)DA.样式表是描述文档结构的文档B.CSS可以用于XMLC.XSL不是根据DTD的语法进行定义的D.DTD符合XML语法5.标记性语言是一系列的规则,这些规则只影响文件的内容而不影响文件的结构(选择1项)BA.正确B.错误6.以下说法不正确的是(选择1项)DA.DTD定义了XML文档中包含的标记、元素、元素类型以及属性B.DTD可以包含在XML文档内,也可以在XML文档外定义 C.命名空间能够区别不同源的元素、属性的定义D.一个结构完整的XML文档一定是合法的XML文档7、下面是一个XML文件的代码片断“book.dtd”是()。BA.内部DTDB.外部DTDC.实体D.元素8、下面是XML文件的代码片断:Course1属性type的命名空间是()。CA.academicB.xmlsnsC.http://www.aptech.edc.acD.XML9、在XML文档对象模型中,下面()对象代表XML文档的根。AA.DOMDocumentB.DOMNodeC.DOMElementD.DOMText10、XSLT处理器的输入是()。BA.XML文档和XML解析器B.XML文档和XSL样式表C.XML文档和XSLTD.XSL样式表和XSLT11、在XMLSchema中,使用()和()标记指定元素和属性。BCA.B.C.D.12、下面关于XML数据岛的描述正确的是()。AA.数据岛就是被HTML页面引用或包含的XML数据 A.数据岛只能引用来自外部XML文件中的数据B.从数据岛读取数据是利用元素的NAME属性来完成的C.数据岛通过那么引用XML数据元素name的HTML文本框的代码可以写为()。BA.B.C.D.14、在XML的Schema中,用于限制元素出现次数的element属性有()。CDA.maxExclusiveB.minExclusiveC.minOccursD.maxOccurs15、在XML中,下列关于XPath的说法不正确的是()。DA.XPath不是用XML书写的B.如果把XML文档当作数据库,那么XPath就相当于SQLC.XPointer依赖于XPathD.XPath可以定义XML文档间的链接关系16、下面的DTD文件中定义了一个XML文档的部分结构:与该DTD定义的结构最相似的Schema是()。Ba) b)c)d)17、如果一个XML文档存在以下()情况,我们称它为无效的xml文档。(选择两项)CDA.没有遵守XML规范定义的语法规则。B.遵守XML语法,但没有定义DTD或Schema。C.定义了DTD或Schema,但没有遵守DTD或Schema中定义的规则。D.定义的DTD或Schema不符合语法规范。18、Hello,World! 上面的XML文档属于()文档。(选择一项)CA.无效的B.有效的C.格式良好的D.格式错误的19、以下的xml文档片段中,属性符合XML语法规则的是()。(选择两项)ABA.B.C.D.20、]>jack&location;关于上述Xml文档,以下描述正确的是()。(选择一项)BA.该Xml文档中使用了外部DTD。B.通过浏览器打开上述Xml文档时,字符串jianwaistreet代替了&location;C.该Xml文档不是有效的XML文档。D.该Xml文档中的location为参数实体。21、Mrs.LordoftheRings上述是一段关于XML命名空间的实例片段,以下说法错误的是()。(选择一项)CA.本例中,命名空间的前缀分别是addr、booksB.第一个元素属于addr名称空间,因为其父元素属于该名称空间。C.名称空间中定义的字符串必须是可以访问的URL,比如:XML解析器会到http://www.zyx.com/books/去搜索DTD或schema22、给定一段DTD片段(保存于d:dtdsroot.dtd):假定XML文档中已有如下声明:。 下面()段XML文档片段能够针对给定的DTD内容成功通过验证。(选择两项)ACa)b)c)d)23、以下关于xslt说法不正确的是()。(选择一项)CA.Xslt是xsl的一部分,有独立的命名空间。B.Xslt可以把xml文档转换为xhtml。C.要执行xslt转换,只需要xml文档,xslt样式表和浏览器就可以了。D.Xslt使用xpath对xml文档进行导航。24、Report.xml中包含subject元素,该元素可以包含某HTML标记,如下:2008年北京奥运会展望现需要编写一个XMLschema来定义该xml文档内容的结构,以下的schema片断中,()可以使Report.xml通过有效性验证。(选择两项)ACa) b)c)d)25、()属性指定元素最多出现的次数。(选择一项)BA.minOccursB.maxOccursC.minExclusiveD.maxExclusive26、某新闻网站新闻量较大,并且新闻需要被即时发布。该网站可以通过各种浏览器和手持设备访问。网站后台是一个基于xml的应用系统,该系统把数据库中数据读取到xml文档中,并使用DOM进行解析。使用以下()方法可以提高后台应用系统的性能,从而提高该网站的性能。(选择一项)BA.把xml文档转化成html网页。B.使用SAX解析xml文档。C.不经解析,把xml文档直接发送给浏览器。D.使用样式表对xml文档进行转换。27、某公司决定使用xml文档和客户进行数据交换,当设计XML文档结构时,以下的因素中,需要设计人员考虑的是()。(选择两项)ADA.每次传递数据的大小。B.发送xml文档需要采用的协议。C.解析xml文档的解析器。D.是否需要处理二进制数据。28、要定义一个数据类型,既可能包含integer类型的值,也可能包含string类型的值,以下schema片段正确的是()。(选择一项)Aa) b)c)d)29、已知xslt片段:,test语句的返回值是()。(选择一项)CA.trueB.falseC.不存在roundOff函数。D.以上都不是。 30、已知xml文档包含如下内容(list为根元素):1815
使用xslt进行转换时,语句能够匹配到()个item元素。(选择一项)BA.3B.2C.1D.031、可扩展样式表语言(XSL)用来定义XML文档的显示语义,XSL包括三个部分,除了()。(选择一项)BA.XSLTB.XPathC.XSL-FOD.CSS32、XML是一种元语言,可以用它来描述其他语言,这个说法()。(选择一项)AA.正确B.错误33、假定元素为XML文档的根元素,这表明()。(选择两项)ACA.根元素下的子元素可以自定义B.对于一个格式正规的XML文档,根元素必须是预定义的标记C.对于一个合法的XML文档,根元素必须是预定义的标记34、以下正确的是()。(选择三项)ABCA.DTD定义了XML文档中包含的标记、元素、元素类型以及属性B.DTD可以包含在XML文档内,也可以在XML文档外定义C.命名空间能够区别不同源的元素、属性的定义D.一个结构完整的XML文档一定是合法的XML文档35、关于DOM的描述错误的是()。(选择两项)ABA.DOM模型是W3C组织开发出来的一个在内存中表示XML数据的线性模型B.只能使用JavaScript进行DOM开发,而不能使用Java、C# A.W3C组织公布了DOM模型的规范,然后各个软件厂商(比如微软)再根据W3C的规范开发DOM解析器,并且提供一系列的编程API,这些API都是遵守W3C规范的B.DOM使开发者能够以编程方式读取、操作和修改XML文档36、关于createNode方法说话正确的是()。(选择两项)ADA.当一个节点创建后,该节点将属于创建节点时所提到的命名空间B.在创建节点时通过传递null参数使得该节点可以没有名称C.如果创建的节点没有指定命名空间URI,那么该节点的命名空间和其父节点的命名空间一致D.如果创建的节点没有指定命名空间URI,那么该节点的命名空间将为默认命名空间37、下列XML文档是否正确()。(选择一项)BA.正确B.错误38、代码段1:代码段2:关于代码段1和代码段2的描述正确的是()。(选择一项)CA.代码段1定义的数据类型为简单类型,代码段2定义的数据类型应该为复杂数据类型,因此代码段2的定义是错误的B.代码段1定义的数据为整型数据,数据的取值范围为小于等于0或者大于等于100C.代码段2定义的元素为简单类型,该元素取值在日期类型列表中选择39、以下说法错误的是()。(选择三项)ACDA.样式表是描述文档结构的文档B.DTD不符合XML语法C.XSL根据DTD的语法进行定义的,是DTD的扩展D.CSS最早是针对XML提出来的,现在也可以用于HTML40、以下XML文档是否有效()。(选择一项)AJoeJohn ReminderDontforgetmethisweekend!A.有效B.无效41、以下说法正确的是()。(选择两项)CDA.#CDATA标记表示该元素包含的数据将被解析器解释B.#PCDATA标记表示该元素包含的数据将不被解析器解释C.#PCDATA标记表示该元素包含的数据将被解析器解释D.#CDATA标记表示该元素包含的数据将不被解析器解释42、阅读下面XML文档,然后判断下列说法正确的是()。(选择一项)Dtom12A.是元素对象,同样也是文本对象B.是元素对象,同样也是文本对象C.tom是元素对象D.tom是文本对象43、下列关于上述DTD声明的描述错误的是()。(选择一项)AA.与ex2.dtd关联的文档里需要一个或者多个元素存在B.poem就是文档元素名称,该名称是必须的C.SYSTEM定位将会被间接引用,用来指明DTD的位置,因此它必须使用URI引用的URL形式或者文件系统路径定位44、以下表示font-weight的属性有()。(选择三项)ACDA.NormalB.SmallcapsC.BolderD.Lighter45、关于CSS的描述错误的是()。(选择一项)Ba)可以利用CLASS来定义CSS样式b)在XML中引用CSS指令c)可以在CSS中,将一组属性应用于多个元素d)可以在CSS中,直接定义某一个标记的各种属性值46、关于上述DTD定义的描述正确的是()。(选择一项)Ca)Customer元素能包含子元素,并且能为空b)Customer元素能包含文本,并且能为空c)Customer元素不能包含文本,也不能包含子元素d)Customer元素的所有实例的“称呼”属性必须有值,不能为空47、VivianRichards7626276关于上述XML文档的描述正确的是()。(选择一项)DA.上述文档不支持英文字符编码B.上述文档是有效的XML文档C.上述文档不是格式正规的XML文档D.上述文档不是有效的XML文档,而是格式正规的XML文档48、books.xml文件Carson31.9505/01/2001MSPressWADOM编程代码varxmlDoc=newActiveXObject("Msxml2.DOMDocument.4.0");varcurrNode;xmlDoc.async=false;xmlDoc.load("books.xml");currNode=xmlDoc.documentElement.childNodes.item(0).baseName;window.alert(currNode);关于以上代码的描述正确的是()。(选择一项)C A.以上代码将异步装载books.xml文件B.以上代码将显示booksC.以上代码将显示book49、以下说法正确的是()。(选择两项)ABA.可以通过DOM编程来访问XML文档B.DOM为开发者提供了一些编程接口,开发者能够使用实现了DOM接口的编程语言来操纵这些接口以访问XML文档C.如果一种编程语言没有实现DOM接口,开发者依然可以通过这些接口来访问XML文档D.以上都不正确50、下列说法错误的是()。(选择一项)BA.XSL在转换XML文档时分为明显的两个过程:首先转换文档结构,然后将文档格式化输出B.XSLT包含XSL和XPath的强大功能,从而可以把XML文档转换成任何一种其它格式的文档C.如果将XML文档看作一个数据库,XPath就是SQL查询语言D.如果将XML文档看成DOS目录结构,XPath就是cd、dir等目录操作命令的集合51、以下声明正确的是()。(选择两项)BCA.B.C.D.<%xml-stylesheettype="txt/css"href="abc.css"%>52、以下关于XSL的标记正确的是()。(选择两项)ABA.B.C.D.53、标记性语言是一系列的规则,这些规则强加在文件的内容和结构上。这个说法()。(选择一项)AA.正确B.错误54、下列说法错误的是()。(选择一项)AA.IXMLDOMNode表示根节点,这是处理XML对象模型数据的基本接口,这个接口还包含了对数据类型、名称空间、DTD、schema的支持B.Schema从字面意义上来说,可以翻译成架构,它的基本意思是为XML文档制定一种模式C.Schema相对于DTD的明显好处是XMLSchema文档本身也是XML文档,而不是像DTD一样使用自成一体的语法D.在Schema中,通过对元素的定义和元素关系的定义来实现对整个文档性质和内容的定义的55、关于XML声明正确的是。(选择1项)CA.B.C. A.<%xmlversion=”1.0”%>56、在XML中用于注释的符号是。(选择1项)AA.B.----?>C.<%%>D.57、关于XML的叙述正确的是。(选择1项)CA.XML文档可以任意开始B.每个XML可以有多个根元素C.XML各元素要正确的嵌套D.XML不区分大小写58、一个XML必须有DTD或Schemas。(选择1项)A.正确B.不正确59在DTD中对于元素属性,下列哪一个表示可加可不加。(选择1项)BA.FIXEDB.IMPLIEDC.REQUIREDD.DATA60、以下声明正确的是。(选择2项)BCA.B.C.D.<%xml-stylesheettype="txt/css"href="abc.css"%>61、以下关于XSL的标记正确的是。(选择2项)ABA.B.C.D.62、标记性语言是一系列的规则,这些规则强加在文件的内容和结构上。(选择1项)AA.正确B.错误63、XML是一种元语言,可以用它来描述其他语言。(选择1项)AA.正确B.错误64、以下正确的是。(选择3项)ABC A.DTD定义了XML文档中包含的标记、元素、元素类型以及属性B.DTD可以包含在XML文档内,也可以在XML文档外定义C.命名空间能够区别不同源的元素、属性的定义D.一个结构完整的XML文档一定是合法的XML文档65、关于DOM的描述错误的是。(选择2项)ABA.DOM模型是W3C组织开发出来的一个在内存中表示XML数据的线性模型B.只能使用JavaScript进行DOM开发,而不能使用Java、C#C.W3C组织公布了DOM模型的规范,然后各个软件厂商(比如微软)再根据W3C的规范开发DOM解析器,并且提供一系列的编程API,这些API都是遵守W3C规范的D.DOM使开发者能够以编程方式读取、操作和修改XML文档66、关于XSLT的叙述错误的是。(选择1项)BA.它可以使用自己的XML信息,为其它用户合成新的数据实例B.不可以将数据以简单文本方式传递给其它系统C.可以直接从数据源生成HTML/CSS网页D.用户可以用多种方式应用数据67、对于内部DTD文档,哪一个是错误的。(选择1项)CA.它定义的文档类型只能应用在XML中,其它的XML文档不能使用B.不能放在XML数据之后C.可以放在XML声明之前D.可以在XML声明中,加入standalone=”yes”69、DTD与XMLSchema都是XML文档。(选择1项)BA.正确B.不正确70、对于Schema,一个XML文件可以有多个对应的Schema。(选择1项)AA.正确B.不正确简答题(3题)1、xml有哪些解析技术?区别是什么?答:有DOM,SAX,STAX等 DOM:处理大型文件时其性能下降的非常厉害。这个问题是由DOM的树结构所造成的,这种结构占用的内存较多,而且DOM必须在解析文件之前把整个文档装入内存,适合对XML的随机访问SAX:不现于DOM,SAX是事件驱动型的XML解析方式。它顺序读取XML文件,不需要一次全部装载整个文件。当遇到像文件开头,文档结束,或者标签开头与标签结束时,它会触发一个事件,用户通过在其回调事件中写入处理代码来处理XML文件,适合对XML的顺序访问 STAX:StreamingAPIforXML(StAX) 2、你在项目中用到了xml技术的哪些方面?如何实现的?答:用到了数据存贮,信息配置两方面。在做数据交换平台时,将不同数据源的数据组装成XML文件,然后将XML文件压缩打包加密后通过网络传送给接收者,接收解密与解压缩后再同XML文件中还原相关信息进行处理。在做软件配置时,利用XML可以很方便的进行,软件的各种配置参数都存贮在XML文件中。3、XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式?答:XML文档定义有两种形式:dtd,schema。 本质区别:schema本身是xml的,可以被XML解析器解析(这也是从DTD上发展schema的根本目的)。 解析XML文档有DOM,SAX,STAX等方式: DOM:处理大型文件时其性能下降的非常厉害。这个问题是由DOM的树结构所造成的,这种结构占用的内存较多,而且DOM必须在解析文件之前把整个文档装入内存,适合对XML的随机访问SAX:不同于DOM,SAX是事件驱动型的XML解析方式。它顺序读取XML文件,不需要一次全部装载整个文件。当遇到像文件开头,文档结束,或者标签开头与标签结束时,它会触发一个事件,用户通过在其回调事件中写入处理代码来处理XML文件,适合对XML的顺序访问 STAX:StreamingAPIforXML(StAX)其他相关OOAD选择题(60题)1、在面向对象的分析与设计中,下列关于建模的必要性,说法错误的是()。(选择一项)DA.模型有助于指定系统的结构或行为B.模型可以记录已经作出的决策C.模型有助于实现系统更改,从而增强功能和得到认可D.小型系统不需要建模2、在面向对象的分析与设计中,下列关于建模的原则,说法正确的是()。(选择一项)CA.选择什么样的模型与要解决的问题没有关系B.一般情况下,单个模型都能满足要求C.最佳模型与显示情况是紧密相连的D.每一种模型都有特定的精度级别3、在面向对象的分析与设计中,下列()不属于UML图。(选择一项)EA.用例图B.类图C.时序图D.活动图 A.视图4、在面向对象的分析与设计中,下列()不属于标识候选类的方式。(选择一项)DA.排除冗余类B.去除无关类C.排除模糊类D.排除抽象类5、在面向对象的分析与设计中,下列()不属于类之间的关系。(选择一项)DA.关联B.泛化C.依赖D.多态E.聚合6、在面向对象的分析与设计中,下列关于各种UML图,说法正确的是()。(选择一项)AA.借助时序图、状态图、活动图可以描述系统的动态模型B.时序图显示对象在生命周期内响应外部事件和消息时所经历的状态序列C.状态图着重于多个事物的描述D.活动图是按时间顺序模拟控制流程7、在面向对象的分析与设计中,下列关于关键抽象的说法,错误的是()。(选择一项)BA.关键抽象强调与系统设计有关的实体B.关键抽象的抽象层次越高越好C.关键抽象排除系统外部多于地实体D.关键抽象将成为分析模型中的类8、在面向对象的分析与设计中,下列关于用例图的说法,错误的是()。(选择一项)CA.用例图有助于将重点放在系统可能的用户上B.用例图有助于确定用户与系统交互时扮演的角色C.在用例图中,用圆形表示系统边界D.用例之间的关系包括扩展关系,包含关系9、在面向对象的分析与设计中,下列()不属于UML的应用开发领域。(选择一项)DA.信息系统B.技术系统C.业务系统D.导弹系统10、在面向对象的分析与设计中,下列关于UML图的优点说法不正确的是()。(选择一项)CA.图形符号可以展示和表达系统的概观B.为规划中的系统精密且明确的建模C.使用UML构建的模型与语言相关D.帮助完成从软件项目开始至交付过程中的所有归档 11、在面向对象的分析与设计中,下列关于OOA与OOD说法错误的是()。(选择一项)BA.OOA是指依照用户理解的真实世界中的对象和概念,发现和分析对象的内部构成和外部关系B.OOA着眼于OOD的技术细化C.OOD是指根据以建立的系统对象模型,运用面向对象技术,进行软件设计D.OOA、OOD有助于处理软件开发的复杂性12、在面向对象的分析与设计中,关于用RationalXDE绘制时序图的说法正确的是()。(选择三项)ABDA.事件事由水平线描述的B.对象是由垂直线描述的C.从下到上的事件发生顺序来描述事件D.时间是从顶部开始沿垂直分析描述的13、在面向对象的分析与设计中,下列关于类之间的泛化关系,说法正确的是()。(选择两项)BDA.泛化是类之间的一种连接,泛化总是双向的B.面向对象中的继承关系在UML中称为泛化C.泛化是指从抽象类得到子类D.被泛化的类称为子类,得到的类称为超类14、在面向对象的分析与设计中,下列关于类之间的聚合与组合关系,说法正确的是()。(选择两项)ABA.聚合标明一种长期关系,限制条件事某个对象是另一个对象的组成部分B.在组合关系中,没有整体,部分也没有存在地价值C.在聚合关系中,没有整体,部分也没有存在地价值D.组合是关联的一种特殊形式15、在面向对象的分析与设计中,关于接口与实现说法错误的是()。(选择一项)AA.一个类只能实现一个接口B.一个接口可以被多个类实现C.类和接口之间的关系称为实现D.接口是用于指定类或组件服务的操作的集合16、下列哪些语言用于知识和神经网络范例的软件开发?[选择二项]BCA.Java。B.RETE++。C.CLIPS。D.Simula。17、下面哪三项属于SDLC的阶段?BCDA.需求产生。B.系统测试。C.需求分析。D.可行性研究。18、关于软件开发生命期的“可行性”研究阶段,下列叙述中哪两项正确?BDA.在这个阶段,分析人员和用户密切合作。B.在经济上或财政上系统是否划算。 A.鉴别具有数据元素的数据输入屏幕。B.一旦安装软件,用户将如何有效地操作这个软件。19、叙述1:在对象生命期中,可以有一个初始状态和一个和多个终止状态。B叙述2:在对象生命期中,只能有一个初始状态和一个终止状态。 [选择一项]A.叙述1是错误的并且叙述2是正确的B.叙述2是错误的并且叙述1是正确的C.两个叙述都是正确的D.两个叙述都是错误的20、叙述1:知识和神经网络范例仍处于试验阶段。B叙述2:知识和神经网络范例已经能适用于商业和技术领域。[选择一项]A.两个叙述都正确。B.叙述1正确,叙述2错误。C.叙述2正确,叙述1错误。D.两个叙述都错误。21下面哪三项是OOAD的优势?ABCA.对象的重新利用加速了设计和开发过程。B.减少了错误和维护问题。C.可使用已有对象轻松创建新应用程序。D.用OOAD生成应用程序永远不会失败。22、下面OOA和OOD的区别中哪两项正确?BCA.在OOA中,程序组织为对象的合作集合,而在OOD依据现实世界的对象和概念开发被用户理解并且准确而简洁的问题模型。B.在OOD中,程序组织为对象的合作集合,而在OOA依据现实世界的对象和概念开发被用户理解并且准确而简洁的问题模型。C.OOD的重点在于,在确保包含全部需求的前提下使提供的解决方案达到最优,而且OOD着眼于OOA的细化。23、下列与UM下列的关于UML的叙述中哪三项是正确的?ACDA.是面向对象方法用来表达系统设计的图形符号。B.已经在小的模型中而不是复杂系统中证明成功。C.可在用户、分析人员、设计人员和软件开发人员之间建立一个轻松自在的对话。D.用于可视化、具体化、结构化和文档化软件内在系统的不同方面的语言。E.只用于系统开发的设计阶段。24、系统建模的目的在于哪三项?ACDA.模型将可视化一个系统,就象它的真实所在或者用户所希望的那样。B.模型使计算机程序与人的思维更加接近。C.模型为构造系统的开发者提供模板。D.模型允许指定系统的结构和行为。 A.模型对功能进行分解的设计。25、组成静态视图的UML视图表现了系统的行为模式。BA.正确。B.错误。26、下列与使用案例相关的叙述哪三项是正确的?ACEA.在系统中,每个脚本都被看作是使用案例B.每个脚本中的用户都被不看作是“行动者”(Actor)。C.一个实际用户可以扮演多种角色。D.行动者是与系统交互的其他系统。E.一位行动者不必是一个人或用户。行动者可以是系统外部与系统进行交互的任何事物。27、下面哪三项是使用案例的优点?BDEA.关注系统可能的输出。B.服务的来源,并帮助确定系统必须实现的类。C.在简单系统中,依据所建立的需求提供系统分析的出发点。D.交互作用有助于描述系统的功能。E.以系统与一个或多个行动者之间的一系列交互作用表示具体的需求。28、下面哪两项引发使用案例的定时器事件?CDA.每笔定期存款到期后自动转存。B.在到期前定期存款终止。C.月末。D.定期存款到期。29、使用案例是系统与行动者之间交互的文本描述。AA.正确。B.错误。30、使用案例模型只能在一个使用案例示图中解释。BA.正确。B.错误。31、叙述1:结构实体可以理解为系统与之交互的物理实体。C叙述2:从一个帐户向另一个帐户转帐是结构实体的示例。A.两个叙述都错误。B.两个叙述都正确。C.叙述1正确,叙述2错误。D.叙述1错误,叙述2正确。32、叙述1:软件系统中的对象不直接存在于现实生活中。C叙述2:在问题领域中很难识别类和对象。A.两个叙述都错误。B.两个叙述都正确。 A.叙述1正确,叙述2错误。B.叙述1错误,叙述2正确。33、类可以从如下哪三项内容中识别ACDA.应用专家。B.用户。C.使用案例。D.需求陈述。E.程序员。34、下面与类的私有属性相关的陈述哪三项是不正确的?ACDA.可从类的外部访问。B.不能从类的外部访问。C.由超类继承而来。D.私有属性的前缀为“+”号。E.私有属性的前缀为“-”号。35、每个聚集不可以由其他聚集构成。BA.正确。B.错误。36、SDLC代表____________________________.BA.SystemDevelopmentLifeCycle(系统开发生命期)B.SoftwareDevelopmentLifeCycle(软件开发生命期)C.SystemDesignLifeCycle(系统设计生命期)D.SoftwareDesignLifeCycle(软件设计生命期)37、需求分析阶段最后形成的详细文档叫需求规范AA.正确B.错误38、在一个典型的SDLC过程中如何分配工作量?Aa)设计和分析40%开发40%测试20%b)设计和分析30%开发50%测试20%c)设计和分析50%开发30%测试20%d)设计和分析50%开发40%测试10% 39、________________是按照对象的协作集合组织解决方案的阶段,每一个对象代表类的一个实例,它们通过继承关系联合在一起。CA.SDLCB.OOPC.OODD.OOA40、面向对象分析和设计有助于处理软件开发的复杂性和生成适应性强的有弹性的软件系统。AA.正确B.错误41、UML代表____________________________.DA.UniqueModelingLanguage(独立建模语言)B.UnifiedMarkupLanguage(统一标记语言)C.UniversalModelingLanguage(通用建模语言)D.UnifiedModelingLanguage(统一建模语言)42、在分析的初期过程期间,系统地阐述的几个类称作候选类。AA.正确B.错误43、用来描述模型的语言叫做“建模语言”。AA.正确B.错误44、如果存在多个类定义同样实体的情况,那么这些类称作冗余类。AA.正确B.错误45、如果属性的可见性是____________,那么属性的行为类似于private属性,但是可通过基类继承的。BA.PublicB.ProtectedC.LocalD.Global46、在同类的对象之间发生的关系称为_____________?AA.递归关联B.相关关联C.冗余关联47、叙述A:聚合是将组成部分组合在一起获得所需实体的过程。叙述B:关联在另一个角度来说是实体之间的联系。CA.叙述1错误,叙述2正确。B.叙述1正确,叙述2错误。 A.两个叙述都正确。B.两个叙述都错误。48、鉴别器是一个特征,它是子类创建的基础。AA.正确B.错误49、使用一般化原理共享属性和操作的机制称为继承。AA.正确B.错误50、叙述1:内部事件从系统内部触发,它们由一个对象在另一个对象中触发。叙述2:外部事件从系统范围之外触发。CA.叙述1错误,叙述2正确。B.叙述1正确,叙述2错误。C.两个叙述都正确。D.两个叙述都错误。51.用例模型的基本组成部件是。(选择3项)ABCA.用例B.角色C.系统D.动作52.不属于用例之间的关系有。(选择1项)AA.通用B.扩展C.使用D.组合53.序列图描述对象是如何交互的并且将重点放在消息序列上。(选择1项)AA.正确B.不正确54.活动图显示动作及其结果。着重描述操作实现中所完成的工作以及用例实例或类中的活动。(选择1项)BA.正确B.不正确55.UML语言支持的建模方式有。(选择3项)ABDA.静态建模B.动态建模C.模块化建模D.功能性建模56.下列各种图可用于动态建模的有。(选择3项)ACD A.状态图B.类图C.序列图D.活动图57.下列不是常见的模型元素间的关系有。(选择1项)DA.关联B.聚合C.依赖D.笔记58.下列属于状态的组成部分的有。(选择2项)ABA.名称B.活动C.条件D.事件59.属性的可见性有。(选择3项)ABDA.公有的B.私有的C.私有保护的D.保护的60.UML中包括的事件有。(选择3项)ABCA.条件成真B.收到另一对象的信号C.收到操作调用D.函数调用简答题(0题)Other选择题(11题)1)在J2EE中有个容器的概念,下面对容器的陈述正确的是:bcdA.容器不提供事务服务。B.容器为组件提供运行时的服务。C.容器还提供安全管理。D.容器是一种J2EE运行时的组件。 2)基于组件的N层体系结构和传统的二层、三层、N层的不同点是:abcA.基于组件的N层体系中,单一的中间层应用对象已被能相互交流的若干个组件所代替。B.传统的两层体系,商业逻辑在所有的客户上都有,因此,在所有的客户上安装和保持一致变得十分重要。C.三层结构系统使得表达逻辑和商业逻辑被分开。D.在传统的N层体系中,单一的中间层应用对象已被能相互交流的若干个组件所代替。3)假设sample.xml文档有一个元素是,它有个子元素是。我们已经获得了Document对象doc,取出第一个的第一个子元素的值的代码是:abcdA.((Element)doc.getElementsByTagName("PERSON").item(0)).getNodeValue();B.((Element)doc.getElementsByTagName("PERSON").item(0)).getElementsByTagName("NAME").item(0).getFirstChild().getNodeValue();C.((Element)doc.getElementsByTagName("PERSON").item(0)).getElementsByTagName("NAME").item(0).getNodeValue();D.((Element)doc.getElementsByTagName("PERSON").item(0)).item(0).getNodeValue();4)在J2EE中,对于PreparedStatement的方法setInt(intI,intx)描述正确的是()。[选择一项]DA.使得第i个参数的值设为xB.设置第i个参数,同时设置第x个参数C.将第x个参数赋值为iD.将第i个参数赋值为x5、J2EE应用开发生命周期的三个阶段是()。(选择三项)ACDA.开发B.测试C.打包D.部署E.配置6、在J2EE中,通过调用以下()方法,可以装载Sun的JDBC-ODBC桥。(选择一项)CA.class.forname(“sun.jdbc.odbc.JdbcOdbcDriver”);B.class.forName(“sun.jdbcodbcDriver”);C.Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);D.Class.forname(“sun.jdbc,jdbcOdbcDriver”);7、要完成一个信息系统开发,分析人员、设计人员和用户的分工与协作是必不可少的。在这些人员当中,设计人员的职责是()。(选择两项)CDA.研究用户的需求并定义问题域B.信息系统的测试和使用C.确定所开发系统的硬件和软件的需求D.依据数据库结构、屏幕、表单和报表设计系统8、下面使用DWR的代码中,()存在错误。AfunctioncheckUserExists(uname){ JUserChecker.check(haoLeJiaoWo);//A}functionhaoLeJiaoWo(isExist){//Bif(isExist==1){//Calert("用户名已存在!");//D}elseif(isExist==0){alert("用户名不存在!");}}A.A处B.B处C.C处D、D处9、J2EE应用的发布文件的扩展名为()。DA..zipB..jarC..warD..ear10、下列有关SAX,正确的描述为()。CA.可以对文档进行随机访问B.可以读取和写入XML文档C.文档只能遍历一次D.d)SAX基于对象模型11、在SAX中,()事件是在文档的起始处被激发的。DA.endElement()B.startElement()C.endDocument()D.startDocument()简答题(5题)1.什么是JNDI答:(JavaNaming&DirectoryInterface)JAVA命名目录服务。主要提供的功能是:提供一个目录系统,让其它各地的应用程序在其上面留下自己的索引,从而满足快速查找和定位分布式应用程序的功能。2.什么是JMS答:(JavaMessageService)JAVA消息服务。主要实现各个应用程序之间的通讯。包括点对点和广播3.什么是JTA 答:(JavaTransactionAPI)JAVA事务服务。提供各种分布式事务服务。应用程序只需调用其提供的接口即可。4.开发中都用到了那些设计模式?用在什么场合?答:每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心。通过这种方式,你可以无数次地使用那些已有的解决方案,无需在重复相同的工作。主要用到了MVC的设计模式。用来开发JSP/Servlet或者J2EE的相关应用。简单工厂模式等。5.、j2ee常用的设计模式?说明工厂模式。答:Java中的23种设计模式:Factory(工厂模式),Builder(建造模式),FactoryMethod(工厂方法模式),Prototype(原始模型模式),Singleton(单例模式),Facade(门面模式),Adapter(适配器模式),Bridge(桥梁模式),Composite(合成模式),Decorator(装饰模式),Flyweight(享元模式),Proxy(代理模式),Command(命令模式),Interpreter(解释器模式),Visitor(访问者模式),Iterator(迭代子模式),Mediator(调停者模式),Memento(备忘录模式),Observer(观察者模式),State(状态模式),Strategy(策略模式),TemplateMethod(模板方法模式),ChainOfResponsibleity(责任链模式)工厂模式:工厂模式是一种经常被使用到的模式,根据工厂模式实现的类可以根据提供的数据生成一组类中某一个类的实例,通常这一组类有一个公共的抽象父类并且实现了相同的方法,但是这些方法针对不同的数据进行了不同的操作。首先需要定义一个基类,该类的子类通过不同的方法实现了基类中的方法。然后需要定义一个工厂类,工厂类可以根据条件生成不同的子类实例。当得到子类的实例后,开发人员可以调用基类中的方法而不必考虑到底返回的是哪一个子类的实例。