android面試題-試題集共分為以下十部分_第1頁
android面試題-試題集共分為以下十部分_第2頁
android面試題-試題集共分為以下十部分_第3頁
android面試題-試題集共分為以下十部分_第4頁
android面試題-試題集共分為以下十部分_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余52頁可下載查看

付費(fèi)下載

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

面試題集共分為以下十部分:一、Core1—題1—頁1—題1—頁—題—頁—題—頁—題—頁IO&—題—頁二、OOAD&—題—頁三、—題—頁四、—題—頁五、JDBC&—題—頁六、—題—頁七、EJB&—題—頁&&—題—頁九、—題—頁十、1—1355—57一、CoreJava部分:(共95題:基礎(chǔ)91道,中等難度4道基礎(chǔ)及語法部分:(61題:基礎(chǔ)60道、中等難度11、面向?qū)ο蟮奶卣饔心男┓矫?【基礎(chǔ)】同√√√√√√√×√√××√×××4、floatfloatf=3.4答:不能;應(yīng)該用強(qiáng)制類型轉(zhuǎn)換,如下所示:floatf=(float)1.36、shorts1=1;s1=s1+1;有什么錯(cuò)?shorts11;s11;答:shorts11;s1s11;s1+1intshorts1=1;s1+=18、intInteger答:Java提供兩種不同的類型:類型和原始類型(或內(nèi)置類型);int是java的原始數(shù)據(jù)類型,Integer是java為int提供的封裝類。Java為每個(gè)原始類型提供了封裝類:類型和原始類型的行為完全不同,并且它們具有不同的語義。類型和省值。對(duì)象實(shí)例變量的缺省值為null,而原始類型實(shí)例變量的缺省值與答:&是位運(yùn)算符,表示按位與運(yùn)算,&&是邏輯運(yùn)算符,表示邏輯與(and)型,而且可以操作數(shù)值型b.邏輯操作不會(huì)產(chǎn)生短路。12、Math.round(11.5)等于多少?Math.round(-11.5)答:Math.round(11.5)==12Math.round(-11.5)==-11round方法返回與參數(shù)最接近的長(zhǎng)整數(shù),參數(shù)加1/2后求其floor。13swtich是否能作用在byte上,是否能作用在long上,是否能作用在語句的參數(shù)應(yīng)該是int、short、char或者byong,string都不能作用于swtich。答:2<<3。15length()Stringlength()這個(gè)方法?【基礎(chǔ)】載Overloading。18、兩個(gè)對(duì)象值相同(x.equals(y)true)hashcode,這句話對(duì)不對(duì)?【基礎(chǔ)】hashcode20trueA:String(“beijing”答:AB并可返回變化后的結(jié)果,那么這里到底是值傳遞還是傳遞?【基礎(chǔ)】答:是值傳遞。Java答:publicStringtranslate(Stringstr){StringtempStr="";tempStr=newString(str.getBytes("ISO-8859-1"),"GBK");tempStr=tempStr.trim();}catche){}return}24、String,StringBufferStringBuilder的區(qū)別?!净A(chǔ)】別是內(nèi)容要修改時(shí),那么使用StringBuffer,如果最后需要String,那么使用StringBuilderJDK5StringBuffer該類補(bǔ)充了一個(gè)單個(gè)線程使用的等價(jià)類;通常應(yīng)該優(yōu)先使用StringBuilder類,因?yàn)樗С炙邢嗤男?【基礎(chǔ)】(Overriding)。子類的對(duì)象使用這個(gè)方法時(shí),將調(diào)用法的重載(Overloading)。Overloaded的方法是可以改變返回值的類型。classA{inta=1;doubled=2.0;voidshow(){System.out.println("ClassA:a="+a}}classBextendsfloatStringd="Javaprogram.";voidshow(){super.show(System.out.println("ClassB:a="+a}}Aa=newA(); Ab=newB();ClassA:a=1d=2.0ClassA:a=1ClassB: d=Javaprogram29 答:方法的存在而不去實(shí)現(xiàn)它的類被叫做抽象類( 這樣的接口而獲得。接口中的所有方法都是抽象的,所有成員變量都是publicinstanceof運(yùn)算符可以用來決定某對(duì)象的類是否實(shí)現(xiàn)了接口。30、StaticNestedClassInnerClass答:StaticNestedClass是被 為靜態(tài)(static)的類,它可以不依賴 時(shí)是synchronized?【基礎(chǔ)】接;而實(shí)例變量必須依存于某一實(shí)例,只能通過對(duì)象才能到它。答:不可以,如果其中包含對(duì)象的method(),不能保證對(duì)象初始化。有缺省行為。答:GC是收集的意思(GabageCollection),內(nèi)存處理是編程容易出目的,Java語言沒有提供釋放已分配內(nèi)存的顯示操作方法。Java程序員不用面的方法之一:System.gc()或Runtime.getRuntime().gc()。 回收,增量回收。主動(dòng)通知虛擬機(jī)進(jìn)行回收?【基礎(chǔ)】GC39、Strings=newString(“xyz”)StringObject?答:兩個(gè)對(duì)象,一個(gè)是"xyx",一個(gè)是指向"xyx"的對(duì)象s。繼承實(shí)體類(concreteclass)?【基礎(chǔ)】publicstatic,所有方法默認(rèn)情況下是public.一個(gè)類可以實(shí)現(xiàn)多個(gè)接口。答:常用的類:BufferedReaderBufferedWriterFileReaderFileWirterStringInteger;常用的包:java.langjava.awtjava.iojava.utiljava.sql;常用的接口:RemoistMapNodeList44、AnonymousInnerClass(類)是否可以extends(繼承)其它類?是否可以implements(實(shí)現(xiàn))interface(接口)?【基礎(chǔ)】答:一個(gè)類對(duì)象可以創(chuàng)建它的外部類對(duì)象的內(nèi)容。答:方法的覆蓋Overriding和重載Overloading是java多態(tài)性的不同表現(xiàn);覆蓋Overriding是父類與子類之間多態(tài)性的一種表現(xiàn),重載Overloading是一個(gè)類java.lang.Threadjava.lang.Number(T)3)java.lang.Double(F)4) (F)5) (F)6) (F)7)java.lang.ClassLoader(T)1、2、7可以被繼承。class}public}}classBextendsA{static{}public}}publicclasspublicstaticvoidmain(String[]AabnewB();1a2babnewB();1a2b2b}}packagepublicclass{public{System.out.println("FatherClass}}packageimportpublicclassChildClassextends{publicChildClass(){System.out.println("ChildClassCreate");}publicstaticvoidmain(String[]{FatherClassfc=newFatherClass();ChildClasscc=newChildClass();}}ChildClassCreatepackagepublicclass{privateclass{public{System.out.println("InterClass}}publicOuterClass()InterClassic=newInterClass();}publicstaticvoidmain(String[]{OuterClassoc=new}}InterClassCreateOuterClasspublicclassOuterClass{privatedoubled1=1.0;//insertcode}Youneedtoinsertaninnerclassdeclarationatline3,Whichtwoclassdeclarationsarevalid?(Chooseclasspublicstaticdoublemethoda(){return}publicclassstaticdoublemethoda(){return}privateclassdoublemethoda(){return}staticclassprotecteddoublemethoda(){return}class double}靜態(tài)類可以有靜態(tài)成員,而非靜態(tài)類則不能有靜態(tài)成員;故A、靜態(tài)類的非靜態(tài)成員可以外部類的靜態(tài)變量,而不可外部類的非靜態(tài)變量;故D錯(cuò);非靜態(tài)類的非靜態(tài)成員可以外部類的非靜態(tài)變量;故C正確數(shù)字還可調(diào)用StringvalueOf(…)方法返回相應(yīng)字符串,而對(duì)于包裝類型數(shù)字則可調(diào)用其toString()方法獲得相應(yīng)字符串;方法即可實(shí)現(xiàn)字符串的反轉(zhuǎn),調(diào)用replace方法即可實(shí)現(xiàn)字符串的替換。Strings1Strings2=newString(s1.getBytes("GB2312"),"ISO-8859-publicString[]split(Stringstr,intintn=(str.length()+chars-1)/chars;Stringret[]=newString[n];for(inti=0;i<n;i++){if(i<n-1){ret[i]=str.substring(i*chars,ret[i]=}}return}57、寫一個(gè)函數(shù),21,1求字符串中的中文不能出現(xiàn)亂“我ABC4)應(yīng)該截為“我AB輸入“我ABCDEF6)應(yīng)該輸出ABC”而不是“我ABC+漢的半個(gè)【基礎(chǔ)】publicStringsubString(Stringstr,int{intbytes=0;//用來字符串的總字節(jié)for(inti=0;i<str.length();{if(bytes==subBytes){returnstr.substring(0,}charc=str.charAt(i);if(c<256){bytes1;}elsebytes2;2if(bytes-subBytes==1){returnstr.substring(0,}}}return}Calendartime=Calendar.getInstance();答:publicclassYesterdayCurrent{publicstaticvoidmain(String[]args){Calendarcal=cal.add(Calendar.DATE,-1);}}JavaScriptNetscapeNetscapeNavigatorWebJavaScript是種語言,它可以用來制作與網(wǎng)絡(luò)無關(guān)的,與用戶交互作用的復(fù)雜軟件。它是一種基于對(duì)象(ObjectBased)和事件驅(qū)動(dòng)(EventDriver)的編程語言。因而它本身提供了非常豐富的對(duì)象供設(shè)計(jì)使用;支持這種機(jī)制。一般來說,assertion用于保證程序最基本、關(guān)鍵的正確性。assertion檢查通常在開發(fā)和測(cè)試時(shí)開啟。為了提高性能,在軟件發(fā)布后,assertion檢查通常是關(guān)閉的。在實(shí)現(xiàn)中,斷言是一個(gè)包含表達(dá)式的語句,在執(zhí)行這個(gè)語句時(shí)假定該表達(dá)式為true;如果表達(dá)式計(jì)算為false,那么系統(tǒng)assert(a>0);//throwsanAssertionerrorifa<=assertExpression1assertExpression1Expression2Expression1應(yīng)該總是產(chǎn)生一個(gè)值信息的String消息。javac-source1.4enableassertionsea要在運(yùn)行時(shí)選擇禁用斷言,可使用-da或者-disableassertions標(biāo)記。異常部分:(8題:基礎(chǔ)8JAVA程序了JAVAJAVA2JAVA例如數(shù)組下標(biāo)越界,會(huì)IndexOutOfBoundsException;null的對(duì)象時(shí)會(huì)NullPointerExceptionJAVA所有的異常都是java.lang.Thowable的子類。return答:會(huì)執(zhí)行,在return前執(zhí)行。分別代表什么意義?在try塊中可以拋出異常嗎?【基礎(chǔ)】答:Java通過面向?qū)ο蟮姆椒ㄟM(jìn)行異常處理,把各種不同的異常進(jìn)行分類,并提供了良好的接口。在Java中,每個(gè)異常都是一個(gè)對(duì)象,它是Throwable類或其異常信息,調(diào)用這個(gè)對(duì)象的方法可以捕獲到這個(gè)異常并進(jìn)行處理。Java的異常處理是通過5個(gè)來實(shí)現(xiàn)的:try、catch、throw、throws和finally。一般情況下是用try來執(zhí)行一段程序,如果出現(xiàn)異常,系統(tǒng)會(huì)拋出(throws)一個(gè)異常,進(jìn)行處理,堆棧就會(huì)展開,直到遇到有處理這種“異?!钡膖ry語句。BufferUnderflowException,CannotRedoException,CannotUndoException,ClassCastException,CMMException,ConcurrentModificationException,DOMException,EmptyStackException,IllegalArgumentException,IllegalMonitorStateException,IllegalPathStateException,IllegalStateException,ImagingOpException,IndexOutOfBoundsException,MissingResourceException,NegativeArraySizeException,NoSuchElementException,NullPointerException,ProfileDataException,ProviderException,RasterFormatException,SecurityException,SystemException,UndeclaredThrowableException,UnmodifiableSetException,UnsupportedOperationException68、final,finally,finalize答:final:修飾符(關(guān)鍵字);如果一個(gè)類被為final,意味著它不能再派生出新的子類,不能作為父類被繼承,因此一個(gè)類不能既被為的,又被為final的;將變量或方法為final,可以保證它們?cè)谑褂弥胁槐桓淖?;被為final的變量必須在時(shí)給定初值,而在以后的中只能讀取,不可修改;被為final的方法也同樣只能使用,不能重載。finalize:方法名;Java技術(shù)允許使用finalize()方法在收集器將對(duì)象從內(nèi)存中清除出去之前做必要的清理工作。這個(gè)方法是由收集器在確定這個(gè)對(duì)象沒有被時(shí)對(duì)這個(gè)對(duì)象調(diào)用的。它是在Object類中定義的,因此所理工作。finalize()方法是在收集器刪除對(duì)象之前對(duì)這個(gè)對(duì)象調(diào)用的。thrownew}catch(ExampleA{System.ot.prntfn(“xampeA”;}catch(Exception{System.ou.prntfln(“Ecepton”;} 答:輸出為A。集合部分:(11題:基11道答:CollectionFrameWork如下: CollectionCollectionObject,即Collection的元素(Elements;Map提供key到value的。答:List,Set是;Map不是。答:最常用的集合類是List和Map。List的具體實(shí)現(xiàn)包括ArrayList和素列表。List適用于按數(shù)值索引 元素的情形。Map提供了一個(gè)更通用的元素方法。Map集合類用于 73ArrayList,Vector,LinkedList的性能和特性?【基礎(chǔ)】答:ArrayListVector都是使用數(shù)組方式數(shù)據(jù),此數(shù)組元素?cái)?shù)大于實(shí)際素要涉及數(shù)組元素移動(dòng)等內(nèi)存操作,所以索引數(shù)據(jù)快而數(shù)據(jù)慢,Vector由synchronized(線程安全)ArrayList但是數(shù)據(jù)時(shí)只需要記錄本項(xiàng)的前后項(xiàng)即可,所以速度較快。74、CollectionCollections4)HashtableSynchronizeHashMap不是,在多個(gè)線程排序。Map保存key-value值,value可多值。equals()?方法用來判斷對(duì)象的內(nèi)容是否相同,而”==”判斷地址是否相等,用來決定packageimportimportjava.util.Iterator;importjava.util.List;importjava.util.Random;publicclassRandomSort{publicstaticvoidprintRandomBySort(){RandomrandomnewRandom();Listlist=newArrayList();for(inti=0;i<10;i++){}Iteratorit=list.iterator();intcount=0;while(it.hasNext())System.out.println(++count+":"+}}publicstaticvoidmain(String[]{}}packagetest;classInsertSort{ArrayListpublicInsertSort(intnum,int{al=newArrayList(num);Randomrand=newSystem.out.println("TheArrayListSortBefore:");for(inti=0;i<num;i++){}}publicSortIt(){tempInt;intMaxSize=1;for(inttempInt=(Integer)al.remove(i);if(tempIValue()>=for(intj=0;j<MaxSize;j++if}}}}System.out.println("TheArrayListSortAfter:");for(inti=0;i<al.size();i++){}}publicstaticvoidmain(String[]args){InsertSortis=newInsertSort(10,100);is.SortIt();}}JAVAjava.io.Serializable線程部分:(10題:基礎(chǔ)7道,中等難度3道81、sleep()wait()入此對(duì)象的其它方法?【基礎(chǔ)】 答:wait():使一個(gè)線程處于等待狀態(tài),并且釋放所持有的對(duì)象的lock;法要捕 異常;的實(shí)現(xiàn)方面有兩種,分別是synchronized,wait與notify。8788、synchronizedjava.util.concurrent.locks.Lock的異同?【中等主要不同點(diǎn):Lock有比synchronized更精確的線程語義和更好的性能。synchronized會(huì)自動(dòng)釋放鎖,而Lock一定要求程序員手工釋放,并且必須在finally從句中釋放。89java中有幾種方法可以實(shí)現(xiàn)一個(gè)線程?用什么關(guān)鍵字修飾同步方法?stop()和答:有兩種實(shí)現(xiàn)方法,分別是繼承Thread類與實(shí)現(xiàn)Runnable接口;用synchronized關(guān)鍵字修飾同步方法;stop(),是因?yàn)樗话踩?。它?huì)解除由線程獲取的所有鎖定,而應(yīng)在自己的Thread類中置入一個(gè)標(biāo)志,線程應(yīng)該活動(dòng)還是掛起。若標(biāo)志指用一個(gè)notify()重新啟動(dòng)線程。publicclassTestThread{privateintj;publicTestThread(intj){this.j=j;}privatesynchronizedvoidinc(){System.out.println(j+"--Inc--"}privatesynchronizedvoiddec(){j--;System.out.println(j+"--Dec--"}publicvoid{(newnewThread(newInc()).start();(newDec()).start();newThread(new}classDecextends{publicvoidrun(){for(inti=0;i<100;i++){}}}classIncimplements{publicvoidrun(){for(inti=0;i<100;i++){}}}publicstaticvoidmain(String[]{(new}}IO流及Socket部分:(共5題:基礎(chǔ)5道Serializable現(xiàn)的方法,implementsSerializable后使用一個(gè)輸出流(如FileOutputStream)來構(gòu)造一個(gè)ObjectOutputStream(對(duì)93、文件 如何列出某 如何列出某 是否存在Filefile=newFile("e:\\總結(jié)");File[]files=file.listFiles();for(inti=0;i<files.length;i++){if(files[i].isFile())}Filefile=newFile("e:\\總結(jié)");File[]files=file.listFiles();for(inti=0;i<files.length;i++){if(files[i].isDirectory())}System.out.println(newFile("d:\\t.txt").exists());FileInputStreamfin=newbyte[]bs=newbyte[100];intlen=fin.read(bs);if(len<=0)break;System.out.print(new}FileWriterfw=newpublicintcountWords(Stringfile,Stringfind)throws{intcount=Readerin=newFileReader(file);intc;while((c=in.read())!=-{while(c=={for(inti=1;i<find.length();{c=if(c!=find.charAt(i))if(i==find.length()-1)}}}return}答:Server端程序:packagetest;import.*;importjava.io.*;publicclassServer{privateServerSocketss;privateSocketsocket;privateBufferedReaderin;privatePrintWriterout;publicServer(){trysocket=ss.accept();StringRemoteIP=StringRemotePort=":"+socket.getLocalPort();System.out.println("Aclientcomein!IP:"+RemoteIP+RemotePort);in=newBufferedReader(newStringline=in.readLine(); dis:"+line);out=newPrintWriter(socket.getOutputStream(),true);out.println("YourMessageReceived!");out.close();}}catch}}publicstaticvoidmain(String[]args){newServer();}}packagetest;importjava.io.*;import.*;publicclassClient{Socketsocket;PrintWriterout;publicClient(){trysocket=newSocket("",10000);System.out.println("TheServerConnected!");System.out.println("PleaseentersomeCharacter:");BufferedReaderline=newBufferedReader(newout=newin=newBufferedReader(newInputStreamReader(socket.getInputStream()));}}publicstaticvoidmain(String[]{new}}二、OOA/DUML部分:(6題:基礎(chǔ)2道,中等難度4方法獲取對(duì)它的,繼而調(diào)用其中的方法。publicclass{privateprivatestaticSingletoninstance=newSingleton();publicstaticSingletongetInstance(){return}}publicclassSingletonprivatestaticSingletoninstance=null;publicstaticsynchronizedSingletongetInstance(){if(instance==null)instance=newSingleton();return}}privatestatic一般認(rèn)為第一種形式要更加安全些。答:SessionFacadePattern:使用SessionBeanEntityBean;MessageFacadePattern:實(shí)現(xiàn)異步調(diào)用;EJBCommandPattern:CommandJavaBeansSessionBean,實(shí)現(xiàn)答:Java中的23種設(shè)計(jì)模式:Factory(工廠模式),Builder(建造模式FactoryMethod(工廠方法模式),Prototype(原始模型模式(單例模式),F(xiàn)acade(門面模式),Adapter(適配器模式),Bridge(橋元模式),Proxy(模式),Command(命令模式)Interpreter(解釋器模式)Visitor(者模式),Iterator(迭代子模式)Mediator(調(diào)停者模式)Memento(備忘錄模式),Observer(觀察者模式),State(狀態(tài)模式),Strategy(策略模式),TemplateMethod(模板方法模式),ChainOfResponsibleity(責(zé)任鏈模式)。100無需在重復(fù)相同的工作。主要用到了MVC的設(shè)計(jì)模式,用來開發(fā)JSP/Servlet或者J2EE的相關(guān)應(yīng)用;及簡(jiǎn)單工廠模式等。 三、XML部分:(4題:基礎(chǔ)11道,較難2DTDschema解析方式: 等:檔裝入內(nèi)存,適合對(duì)XML的隨機(jī);SAX:不同于DOM,SAX是事件驅(qū)動(dòng)型的XML解析方式。它順序XML文處理XML文件,適合對(duì)XML的順序;STAX:StreamingAPIforXML(StAXXMLXMLpackagetest;publicclassprivateStringinFile="c:\people.xml";privateStringoutFile="c:\people.xml";publicstaticvoidmain(Stringargs[]){new}DOMTest(){trjavax.xml.parsers.Builderbuilder= org.w3c.dom.doc=builder.new();org.w3c.dom.Elementrootdoc.createElement("老師");org.w3c.dom.Elementwang=doc.createElement("王");org.w3c.dom.Elementliu=doc.createElement("劉");javax.xml.transform.Transformertransformer=utKeys.INDENT,"yes");new}catch(Exceptione){}}}答:用SAXXML,XML文件如下:<?xmlversion="1.0" <name><college></importimportorg.xml.sax.*;publicclassSAXHandlerHandlerBase{privateHashtabletable=newHashtable();privateStringcurren=null;privateStringcurrentValue=null;publicvoidsetTable(Hashtabletable){this.table=}publicgetTable(){return}publicvoidstarement(Stringtag,Attribuistthrowscurrenement=}publicvoidcharacters(char[]ch,intstart,intSAXException{currentValue=newString(ch,start,}publicvoidendElement(Stringname)throwsSAXException{if(currenement.equals(name))table.put(currenement,}}<%@pageerrorPage="ErrPage.jsp"<%@pageimport="java.io.*"<%@pageimport="java.util.Hashtable"<%@pageimport="org.w3c.dom.*"<%@pageimport="org.xml.sax.*"<%@pageimport="javax.xml.parsers.SAXParserFactory"<%@pageimport="javax.xml.parsers.SAXParser"<%@pageimport="SAXHandler"Filefile=newFile("c:\people.xml");FileReaderreader=newFileReader(file);Parserparser;SAXParserFactoryspf=SAXParserFactory.newInstance();SAXParsersp=spf.newSAXParser();SAXHandlerhandler=newSAXHandler();sp.parse(newInputSource(reader),handler);HashtablehashTable=handler.getTable();out.println("<TABLEBORDER=2><CAPTION>"+out.println("<TR><TD></TD>"+"<TD>"+(String)hashTable.get(newString("name"))"</TD></TR>");out.println("<TR><TD>學(xué)院</TD>"+"<TD>"+(String)hashTable.get(newout.println("<TR><TD></TD>"+"<TD>"+(String)hashTable.get(newString("ephone"))+out.println("<TR><TD>備注</TD>"+"<TD>"(String)hashTable.get(new+四、數(shù)據(jù)庫及SQL部分:(共4題:基礎(chǔ)3道,中等難度1道Course課程表(,課程名稱)答:1)SQL語句如下:selectstu.sno,stu.snamefromStudentwhere(selectcount(*)fromscwheresno=stu.snoandcno=(selectcnofromCoursewherecname='0;selectcnamefromwherecnoin(selectcnofromscwheresno(selectsnofromStudentwhere '));selectstu.sno,stu.snamefromstudentwhere(selectcount(*)fromscwheresno=stu.sno)=程可以被多個(gè)學(xué)生選修,通過SC表關(guān)聯(lián)。【基礎(chǔ)】答:1)建表語句如下(mysql數(shù)據(jù)庫):createtables(idintegerprimarykey,namevarchar(20));createtablec(idintegerprimarykey,namevarchar(20));createtablesc(cidintegerreferencesc(id),primarykey(sid,cid)selectstu.id,fromswhere(selectcount(*)fromscwhere(selectcount(*)fromc);3)SQL語句如下:selectstu.id,fromsIDMANAGER(ABIDMANAGER(ABCDEF答:SQL語句如下:selectfromtestwhereemployee.age>(selectmanager.agefromtestwhere表 表內(nèi)CityCityStateStateSELECTC.CITYNO,C.CITYNAME,C.STATENO,S.STATENAMEFROMCITYC,STATESORDERBY(C.CITYNO);五、JDBCHibernate:(12題:基礎(chǔ)10道,中等2答:對(duì)象關(guān)系(Object—RelationalMap,簡(jiǎn)稱ORM)是一種為了解決SessionFactory對(duì)象;SessionFactory接口:初始化Hibernate,充當(dāng)數(shù)據(jù)源的,創(chuàng)建避免多個(gè)線程共享同一個(gè)session,是輕量級(jí)、一級(jí)緩存;Hibernate的二級(jí)緩存是什么;答:1)一對(duì)多的為<one-to-many>;多對(duì)多的為<many-to-many>;2)sessionFactory的緩存為hibernate的二級(jí)緩存;Transaction的封裝;默認(rèn)情況下使用JDBCTransaction。答://首先獲得SessionFactory的對(duì)象SessionFactorysessionFactory=newSessionsession=Transactiontx=session.delete(user);//刪除session.update(user);//更新Queryquerysession.createQuery(“fromUser”);Listlist=query.list();常創(chuàng)建和銷毀session的對(duì)象;重量級(jí)意味不能隨意的創(chuàng)建和銷毀它的實(shí)例,會(huì)占答:MSSQLServerconn=DriverManager.getConnection(“jdbc:oracle:thin:@localhost:1521:sid”,uid,conn=DriverManager.getConnection(“jdbc:mysql 提交事務(wù),即為true,通過設(shè)置false自動(dòng)提交事務(wù);1)驅(qū)動(dòng)建立連接;3)創(chuàng)建Statement;4)執(zhí)行sql語句;同的SQL語句。publicvoidtestJdbc(){Connectioncon=null;PreparedStatementps=null;ResultSetrs=null;//step2:獲取數(shù)據(jù)庫連接;/************************//step3:ps=con.prepareStatement(sql);rs=while(rs.next()){System.out.print("id="+rs.getLong("id"));System.out.print(",fname="+rs.getString("fname"));System.out.print(",lname="+rs.getString("lname"));System.out.print(",age="+rs.getInt("age"));}/************************JDBCsql="UPDATE_TblSETage=23WHEREid=?";ps=con.prepareStatement(sql);ps.setLong(1,introws=ps.executeUpdate();System.out.println(rows+"rowsaffected.");}catche){}con.close();}catch(Exceptione1)}}}Queryquery=session.createQuery("fromStudent");Collectionstudents=query.list();Oraclesql"SELECT*FROM(SELECTa.*,rownumrFROMTB_STUDENT)WHERErbetween2and10"210嵌套方法?!局械入y度】intintStringpages=request.getParameter("page");intcurrentPage=1;currentPage=(pages==null)?(1):{Integer.parseInt(pages)}sql="selectcount(*)fromtables";ResultSetrs=DBLink.executeQuery(sql);while(rs.next())i=rs.getInt(1);intintPageCount=1;intnextPage;intnextPage=if(nextPage>=intPageCount)upPage=current1;if(upPage<=1)upPage=1;sql="select*fromtables";while((i<numPages*(current合計(jì):<%=currentPage%>/<%=intPageCount%<ahref="List.jsp?page=1">第一頁<ahref="List.jsp?page=<%=upPage%>">上一頁j=1;j<=intPageCount;j++){if(c<a}}<ahref="List.jsp?page=<%=nextPage%>">下一頁<ahref="List.jsp?page=<%=intPageCount%>">最后頁六、Web部分:(共題:基礎(chǔ)4037道,中等3就銷毀,所以效率上低于servlet。答:publicclassServletNameextends{publicvoiddoPost(HttpServletRequestHttpServletResponsethrowsServletException,IOException}publicvoiddoGet(HttpServletRequestHttpServletResponsethrowsServletException,IOException}}它服務(wù)器上的資源,則必須使用sendRedirect()方法。flush="true"/>它總是會(huì)檢查所含文件中的變化,適合用于包含動(dòng)態(tài)頁面,并適用于包含靜態(tài)頁面<%@includefile="included.htm"%>126并且提供了幾個(gè)用于獲取,header和session數(shù)據(jù)的有用的方法。覽器的響應(yīng)的方法(如s,頭信息等)。便存取各種范圍的名字空間、servlet相關(guān)的對(duì)象的API,并且包裝了通用的servlet相關(guān)功能的方法。有關(guān)servlet引擎和servlet環(huán)境的信息。答:<%@pagelanguage=”java”contenType=”text/html;charset=gb2312” import=”java.sql.*”%>isErrorPage:<%@include<%@taglib答:JSP共有以下6種基本動(dòng)作: 尋找或者實(shí)例化一個(gè)JavaBean。;jsp:setProperty:設(shè)置JavaBean的屬性。;jsp:getProperty:輸出某 的屬性;jsp:forwardrequest:用戶端請(qǐng)求,此請(qǐng)求會(huì)包含來自GET/POST請(qǐng)求的參數(shù); out:用來傳送回應(yīng)的輸出;config:servletpage:JSPGETPOST2)Getvariable=valueaction大量的數(shù)據(jù),所以在上傳文件只能使用Post;getParamter(“name”checkboxJava:request.getParameter(“bankNo”);varselectItems= ementsByName(“bank136web開發(fā)工具有:eclipse,jbuilder137、請(qǐng)畫出Servlet2.2以上WebApplication的基本 答 | JSP頁 WEB-||||視圖,Servlet主要用于控制邏輯。答:a.pageJavaservlet(includeinclude)表示。這既包括servlet又包括被編譯成servlet的JSP頁面b.requestWeb性。一個(gè)Web會(huì)話可以也經(jīng)常會(huì)多個(gè)客戶機(jī)請(qǐng)求是整個(gè)Web應(yīng)用程序,包括多個(gè)頁面、請(qǐng)求和會(huì)話的一個(gè)全局作用域。答:setAttribute(Stringname,Object):設(shè)置名字為name的屬性值getAttribute(Stringname):返回由name指定的屬性值getAttributeNames():返回request對(duì)象所有屬性的名字集合(枚舉) getContentLength():返回請(qǐng)求的Body的長(zhǎng)度getHeader(Stringname):獲得HTTP協(xié)議定義的文件頭信息getHeaderNames():返回所有requestHeader的名字(枚舉)getParameterValues(Stringname):獲得有name指定的參數(shù)的所有值 地址getRemoteHost():獲取客戶端的名字getSession([Booleancreate]):返回和請(qǐng)求相關(guān)SessiongetServerName():獲取服務(wù)器的名字getServletPath():獲取客戶端所請(qǐng)求的文件的路徑getServerPort():獲取服務(wù)器的端removeAttribute(Stringname):刪除答:<%@pageisThreadSafe=”false”%>答:request,session,application,等果的數(shù)據(jù)傳遞給VIEW顯示。生),"Controller"(Servlet),通答:BEAWebLogicServer,IBMWebSphereApplicationServer,Oracle9iApplicationServer,JBoss,Tomcat。答:publicvoidinit(ServletConfigconfig)publicServletConfiggetServletConfig()publicStringgetServletInfo()publicvoiddestroy()答:StrutsJavaServlet/JavaServerPagesWeb開放源碼的framework。采用StrutsMVC(Model-View-Controller)設(shè)計(jì)模式的應(yīng)用構(gòu)架。Struts有如下的主要功能:149、幾種會(huì)話技術(shù)?【基礎(chǔ)答:C/SClient/ServerPCOracle、Sybase、Informix或SQLServer??蛻舳诵枰惭b的客戶端軟件。B/S是Explorer,Oracle、Sybase、InformixSQLServer等數(shù)據(jù)庫。但是主要事務(wù)邏輯在服務(wù)器端實(shí)現(xiàn)。瀏覽器通過WebServer同數(shù)據(jù)庫進(jìn)行數(shù)據(jù)C/SB/SC/S一般建立在 覽器就行;C/S一般面向相對(duì)固定的用戶群,對(duì)的控制能力很強(qiáng).一般高度的信息系統(tǒng)采用C/S結(jié)構(gòu)適宜.可以通過B/S發(fā)布部分可;B/S戶 JavaBean構(gòu)件技術(shù)等,使B/S更加成熟;5)不同級(jí)難.可能是再做一個(gè)全新的系統(tǒng);作系統(tǒng)相關(guān).應(yīng)該都是相同的系統(tǒng);的.與操作系統(tǒng)平臺(tái)關(guān)系最小;B/SC/S程序一般是典型的的機(jī)械式處理,交互性相對(duì)低B/SB-BB-CB-Ginit(FilterConfigconfig)FilterConfigdoFilter(ServletRequestrequest,ServletResponsedestroy()//銷毀Filter。153、簡(jiǎn)述HttpSession的作用、使用方法,可用代碼說明。(3分鐘)【基礎(chǔ)】答:HttpSession中可以并用戶信息,把值設(shè)置到屬性中,有2個(gè)方法:例如:在一個(gè)方法中用session.setAttribute(“student”,student);在答:在JSP中使用JavaBean常用的動(dòng)作有:Serlvet中實(shí)現(xiàn)請(qǐng)求轉(zhuǎn)發(fā)的方式為:getServletContext().getRequestDispatcher(path).forward(req,res答:<bean:message <html:errors<bean:include <html:messages<bean:define <bean:write <bean:resource <bean:cokkie <bean:heder <logic:present<bean:parameter <logic:equal<bean:size答:作用:分離jsp頁面的內(nèi)容和邏輯;易于手工修改、易于工具;寫tld文件;把jsp頁面和 importjavax.servlet.jsp.*;importjava.io.*;publicclassTimeTagSimpleTagSupport{privatebooleanisServer=publicvoidisServer){this.isServer=}publicvoiddoTag()throwsJspException,IOException{JspWriterout=getJspContext().getOut();if(isServer){out.println(newout.println(".write(newDate());");}}}答:1)優(yōu)點(diǎn):簡(jiǎn)單易用,與Java有類似的語法,可以使用任何文本編輯工具編寫,3)Javascript有11種內(nèi)置對(duì)象:七、EJB及Spring部分(184道,中等難度13道,較難1答:JavaBean是可復(fù)用的組件,對(duì)JavaBean并沒有嚴(yán)格的規(guī)范,理論上講,所創(chuàng)建(如Tomcat)的,所以JavaBean應(yīng)具有一個(gè)無參的構(gòu)造器,另外,通常JavaBean還要實(shí)現(xiàn)Serializable接口用于實(shí)現(xiàn)Bean的持久性。JavaBean實(shí)際上相當(dāng)于微軟COM模型中的本地進(jìn)程內(nèi)COM組件,它是不能被跨進(jìn)程 EnterpriseJavaBean相當(dāng)于DCOM,即分布式組件。它是基于Java的 必須被布署在諸如Webspere、WebLogic這樣的容器中,EJB客戶從不直接由容器所創(chuàng)建和管理。客戶通過容器來真正的EJB組件。答:會(huì)話(Session)Bean、實(shí)體(Entity)Bean、消息驅(qū)動(dòng)的(MessageDriven)BeanBean管理的持續(xù)性(BMP)和容器管理的持續(xù)性(CMP)兩種。EJB(EnterpriseBeanProvider)(ApplicationAssembler)、部署者(Deployer)、EJB(EJBServerProvider)、EJB(EJBContainerProvider)、系統(tǒng)管理員(SystemAdministrator),這里面,EJB 工作;三個(gè)對(duì)象是Remoocal)接口、HomeStatefulBean和StaessBean的區(qū)別?!局械入y度RMI、JTA等技術(shù)實(shí)現(xiàn)。SessionBean在J2EE應(yīng)用程序中被用來完成一些服務(wù)器端的業(yè)務(wù)操作,例如數(shù)據(jù)庫、調(diào)用其他EJB組件。EntityBean被用來代表應(yīng)用系統(tǒng)中用到的數(shù)據(jù)。SessionBean還可以再細(xì)分為StatefulSessionBean與StaessSessionBean,這兩種的SessionBean都可以將系統(tǒng)邏輯放在method之中執(zhí)一個(gè)使用者會(huì)有一個(gè)相對(duì)應(yīng)的StatefulSessionBean的實(shí)體。Sta SessionBean雖然也是邏輯組件,但是他卻不負(fù)責(zé)記錄使用者狀態(tài),也就是說當(dāng)使用者呼叫Sta essSessionBean的時(shí)候,EJBContainer并不會(huì)找尋特定的Sta essSessionBean的實(shí)體來執(zhí)行這個(gè)method。換言之,很可能數(shù)個(gè)使用者在執(zhí)行某個(gè)StaessSessionBean的methods時(shí),會(huì)是同一個(gè)Bean的Instance在執(zhí)行。從內(nèi)存方面來看,StatefulSessionBean與StaessSessionBean比較,StatefulSessionBean會(huì)消耗J2EEServer較多的內(nèi)存,然而StatefulSessionBean的優(yōu)勢(shì)卻在于他可以維持使用者的168、bean答:對(duì)于StaessSessionBean、EntityBean、MessageDrivenBean一般EntityBeanStatefullSessionBeanCache管理,通常包含創(chuàng)建實(shí)例,設(shè)置上下文、創(chuàng)建EJBObject(create)、業(yè)務(wù)方法調(diào)用、remove等過程,對(duì)于存在緩沖池管理的Bean,在create之后實(shí)例并不從內(nèi)存清除,而是采用緩沖池調(diào)度機(jī)制不斷重用實(shí)例,而對(duì)于存在Cache管理的Bean則通過激活和去激活機(jī)制保持Bean的狀態(tài)并限制內(nèi)存中實(shí)例數(shù)量。StatefulSessionBeanCache實(shí)例)回復(fù)(激活)此實(shí)例。狀態(tài)變遷前會(huì)調(diào)用對(duì)應(yīng)的ejbActive和ejbPassivate方法。答:SessionBean:StaessSessionBean的生命周期是由容器決定的,當(dāng)客StatefulSessionBean時(shí),容器必須立即在服務(wù)器中創(chuàng)建一個(gè)新EntitBeaEnti容器了,Entitybeans也是存活的。EntityBeans生命周期能夠被容器或BeansEJB(OMG)的對(duì)象實(shí)務(wù)服務(wù)(OTS),SunMicrosystemsTransactionService(JTS)、JavaTransactionAPI(JTA),開發(fā)組(X/Open)的XA接口。答:是通過使用容器或Bean自身管理事務(wù)的;WEBTOMCAT,WEBLOGIC,WEBSPHEREJ2EEWEBAPPLICATIONWEB服J2EEWEBEJB容器:Enterprisejavabean容器。更具有行業(yè)領(lǐng)域特色。他提供給運(yùn)行在其中的組件EJB各種管理功能。只要滿足J2EE規(guī)范的EJB放入該容器,JNDI:(JavaNaming&DirectoryInterface)JAVA命名服務(wù)。主要提供的功能是:提供一個(gè)系統(tǒng),讓其它各地的應(yīng)用程序在其上面留下自己的JMS:(JavaMessageService)JAVAJTA:(JavaTransactionAPI)JAVA事務(wù)服務(wù)。提供各種分布式事務(wù)服務(wù)。應(yīng)RMI/IIOP:(RemoteMethodInvocation/internet)他一定的規(guī)范才能在異構(gòu)的系統(tǒng)之間進(jìn)行通信。RMI是JAVA特有的。 件,web層和組件,Business層和組件,企業(yè)信息系統(tǒng)(EIS)層。Hibernate主要用于數(shù)據(jù)持久化;Struts主要用于流程控制。2)不能操 awt;八、數(shù)據(jù)結(jié)構(gòu)、算法及計(jì)算機(jī)基礎(chǔ)部分:(86中等難度11答:lspwdmkdirrmcpmvcdpsftp envmoreA / / 答:順序?yàn)椋篋JGEBKNIFCAa[0:n1a[0:n1middle而right中的元素都大于等于支點(diǎn);left所得結(jié)果為left+middle+right。voidswap(int&a,b){intc=a;a=b;b=}voidbubble(int*p,intlen){boolbSwapped;do{bSwapped=false;for(inti=1;i++){if(1]>p[i]swap(p[i-1],p[i]);bSwapped=true;}}}while(bSwapped}boolprime(intn){if(n<=0)exit(0);for(inti=2;i<=n;i++)for(intj=2;j<=sqrt(i);j++)if((n%j==0)&&(j!=n))returnreturn}要求用java實(shí)現(xiàn)?!局械入y度】packagepublicclassCountGameprivatestaticbooleansame(int[]p,intl,intn){for(inti=0;i<l;i++){return}}return}publicstaticvoidplay(intplayerNum,intstep){int[]p=newint[playerNum];intcounter=1;if(counterplayerNum*step){}i=1;i<playerNum+1;i++){while(true){elsei=i+1;}if(i>playerNum)break;System.out.print(i+"");}}}}publicstaticvoidmain(String[]{play(10,}}#include<iostream>#include<iomanip>#include<vector>usingnamespacestd;classlongint{longint(void){iv.push_back(1);}longint&multiply(constint&);friendostream&operator<<(ostream&,constlongintostream&operator<<(ostream&os,constlongint{vector<int>::const_reverse_iteratoriv_iter=v.iv.rbegin();os<<*iv_iter++;for(;iv_iter<v.iv.rend();++iv_iter){os<<setfill('0')<<setw(4)<<*iv_iter;}return}longint&longint::multiply(constint{vector<int>::iteratoriv_iter=iv.begin();intoverflow=0,product=0;for(;iv_iter<iv.end();++iv_iter){product=(*iv_iter)*rv;product+=overflow;overflow=0;if(product>10000){overflow=product/10000;product-=overflow*}iv_iter=}if(0!={}return}intmain(intargc,char{longintresult;intl=0;cout<<"like:multiply1000"<<endl;}sscanf(argv[1],"%d",&l);for(inti=2;i<=l;++i){}cout<<result<<endl;return0;}九、C++部分(共14題:基礎(chǔ)10道,中等1道,較難3道charstr1[]="abc";charstr2[]="abc";constcharstr3[]="abc";constcharstr4[]="abc";constchar*str5="abc";constchar*str6="abc";coutboolalpha(str1==str2)endl;//輸出什么?cou

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論