java筆試題大全Java筆試題及答案_第1頁(yè)
java筆試題大全Java筆試題及答案_第2頁(yè)
java筆試題大全Java筆試題及答案_第3頁(yè)
java筆試題大全Java筆試題及答案_第4頁(yè)
java筆試題大全Java筆試題及答案_第5頁(yè)
已閱讀5頁(yè),還剩1頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

應(yīng)聘Java筆試時(shí)可能出現(xiàn)問(wèn)題及其答案前段時(shí)間因?yàn)橐獏⒓右粋€(gè)筆試,在準(zhǔn)備期間在網(wǎng)上找到了兩條關(guān)于筆試題目的文章,其中一篇為<<有感:應(yīng)聘Java筆試時(shí)可能出現(xiàn)問(wèn)題>>,還有一篇忘了名字,讀后深受啟發(fā)。在尋找這些答案的過(guò)程中,我將相關(guān)答案記錄下來(lái),就形成了以下這些東西。需要說(shuō)明的是以下答案肯定有很多不完整甚至錯(cuò)誤的地方,需要各位來(lái)更正與完善它,千萬(wàn)不要扔我的雞蛋啊。希望本文能夠給即將奔赴筆試考場(chǎng)的同仁些許幫助,更希望更多的人加入到收集整理筆試題與完善答案的這些工作中來(lái),為大家更好的獲得工作機(jī)會(huì)做一點(diǎn)貢獻(xiàn)。在此感謝前面兩文的作者的對(duì)筆試題目的收集與整理。如有任何意見(jiàn)與建議請(qǐng)通過(guò)QQ:6045306,Mail:huijunzi@21與我聯(lián)系。Java基礎(chǔ)方面:1、作用域public,private,protected,以及不寫(xiě)時(shí)的區(qū)別答:區(qū)別如下:作用域當(dāng)前類(lèi)同一package子孫類(lèi)其他packagepublic√√√√protected√√√×friendly√√××private√×××不寫(xiě)時(shí)默認(rèn)為friendly2、ArrayList和Vector的區(qū)別,HashMap和Hashtable的區(qū)別答:就ArrayList與Vector主要從二方面來(lái)說(shuō).一.同步性:Vector是線程安全的,也就是說(shuō)是同步的,而ArrayList是線程序不安全的,不是同步的二.數(shù)據(jù)增長(zhǎng):當(dāng)需要增長(zhǎng)時(shí),Vector默認(rèn)增長(zhǎng)為原來(lái)一培,而ArrayList卻是原來(lái)的一半就HashMap與HashTable主要從三方面來(lái)說(shuō)。一.歷史原因:Hashtable是基于陳舊的Dictionary類(lèi)的,HashMap是Java1.2引進(jìn)的Map接口的一個(gè)實(shí)現(xiàn)二.同步性:Hashtable是線程安全的,也就是說(shuō)是同步的,而HashMap是線程序不安全的,不是同步的三.值:只有HashMap可以讓你將空值作為一個(gè)表的條目的key或value3、char型變量中能不能存貯一個(gè)中文漢字?為什么?答:是能夠定義成為一個(gè)中文的,因?yàn)閖ava中以u(píng)nicode編碼,一個(gè)char占16個(gè)字節(jié),所以放一個(gè)中文是沒(méi)問(wèn)題的4、多線程有幾種實(shí)現(xiàn)方法,都是什么?同步有幾種實(shí)現(xiàn)方法,都是什么?答:多線程有兩種實(shí)現(xiàn)方法,分別是繼承Thread類(lèi)與實(shí)現(xiàn)Runnable接口同步的實(shí)現(xiàn)方面有兩種,分別是synchronized,wait與notify5、繼承時(shí)候類(lèi)的執(zhí)行順序問(wèn)題,一般都是選擇題,問(wèn)你將會(huì)打印出什么?答:父類(lèi):packagetest;publicclassFatherClass{publicFatherClass(){System.out.println("FatherClassCreate");}}子類(lèi):packagetest;importtest.FatherClass;publicclassChildClassextendsFatherClass{publicChildClass(){System.out.println("ChildClassCreate");}publicstaticvoidmain(String[]args){FatherClassfc=newFatherClass();ChildClasscc=newChildClass();}}輸出結(jié)果:C:\>javatest.ChildClassFatherClassCreateFatherClassCreateChildClassCreate6、內(nèi)部類(lèi)的實(shí)現(xiàn)方式?答:示例代碼如下:packagetest;publicclassOuterClass{privateclassInterClass{publicInterClass(){System.out.println("InterClassCreate");}}publicOuterClass(){InterClassic=newInterClass();System.out.println("OuterClassCreate");}publicstaticvoidmain(String[]args){OuterClassoc=newOuterClass();}}輸出結(jié)果:C:\>javatest/OuterClassInterClassCreateOuterClassCreate再一個(gè)例題:publicclassOuterClass{privatedoubled1=1.0;//insertcodehere}Youneedtoinsertaninnerclassdeclarationatline3.Whichtwoinnerclassdeclarationsarevalid?(Choosetwo.)A.classInnerOne{publicstaticdoublemethoda(){returnd1;}}B.publicclassInnerOne{staticdoublemethoda(){returnd1;}}C.privateclassInnerOne{doublemethoda(){returnd1;}}D.staticclassInnerOne{protecteddoublemethoda(){returnd1;}}E.abstractclassInnerOne{publicabstractdoublemethoda();}說(shuō)明如下:一.靜態(tài)內(nèi)部類(lèi)可以有靜態(tài)成員,而非靜態(tài)內(nèi)部類(lèi)則不能有靜態(tài)成員。故A、B錯(cuò)二.靜態(tài)內(nèi)部類(lèi)的非靜態(tài)成員可以訪問(wèn)外部類(lèi)的靜態(tài)變量,而不可訪問(wèn)外部類(lèi)的非靜態(tài)變量;returnd1出錯(cuò)。故D錯(cuò)三.非靜態(tài)內(nèi)部類(lèi)的非靜態(tài)成員可以訪問(wèn)外部類(lèi)的非靜態(tài)變量。故C正確四.答案為C、E7、垃圾回收機(jī)制,如何優(yōu)化程序?希望大家補(bǔ)上,謝謝8、float型floatf=3.4是否正確?答:不正確。精度不準(zhǔn)確,應(yīng)該用強(qiáng)制類(lèi)型轉(zhuǎn)換,如下所示:floatf=(float)3.49、介紹JAVA中的CollectionFrameWork(包括如何寫(xiě)自己的數(shù)據(jù)結(jié)構(gòu))?答:CollectionFrameWork如下:Collection├List│├LinkedList│├ArrayList│└Vector│└Stack└SetMap├Hashtable├HashMap└WeakHashMapCollection是最基本的集合接口,一個(gè)Collection代表一組Object,即Collection的元素(Elements)Map提供key到value的映射10、Java中異常處理機(jī)制,事件機(jī)制?11、JAVA中的多形與繼承?希望大家補(bǔ)上,謝謝12、抽象類(lèi)與接口?答:抽象類(lèi)與接口都用于抽象,但是抽象類(lèi)(JAVA中)可以有自己的部分實(shí)現(xiàn),而接口則完全是一個(gè)標(biāo)識(shí)(同時(shí)有多重繼承的功能)。13、Java的通信編程,編程題(或問(wèn)答),用JAVASOCKET編程,讀服務(wù)器幾個(gè)字符,再寫(xiě)入本地顯示?答:Server端程序:packagetest;import.*;importjava.io.*;publicclassServer{privateServerSocketss;privateSocketsocket;privateBufferedReaderin;privatePrintWriterout;publicServer(){try{ss=newServerSocket(10000);while(true){socket=ss.accept();StringRemoteIP=socket.getInetAddress().getHostAddress();StringRemotePort=":"+socket.getLocalPort();System.out.println("Aclientcomein!IP:"+RemoteIP+RemotePort);in=newBufferedReader(newInputStreamReader(socket.getInputStream()));Stringline=in.readLine();System.out.println("Cleintsendis:"+line);out=newPrintWriter(socket.getOutputStream(),true);out.println("YourMessageReceived!");out.close();in.close();socket.close();}}catch(IOExceptione){out.println("wrong");}}publicstaticvoidmain(String[]args){newServer();}};Client端程序:packagetest;importjava.io.*;import.*;publicclassClient{Socketsocket;BufferedReaderin;PrintWriterout;publicClient(){try{System.out.println("TrytoConnectto:10000");socket=newSocket("",10000);System.out.println("TheServerConnected!");System.out.println("PleaseentersomeCharacter:");BufferedReaderline=newBufferedReader(newInputStreamReader(System.in));out=newPrintWriter(socket.getOutputStream(),true);out.println(line.readLine());in=newBufferedReader(newInputStreamReader(socket.getInputStream()));System.out.println(in.readLine());out.close();in.close();socket.close();}catch(IOExceptione){out.println("Wrong");}}publicstaticvoidmain(String[]args){newClient();}};14、用JAVA實(shí)現(xiàn)一種排序,JAVA類(lèi)實(shí)現(xiàn)序列化的方法(二種)?如在COLLECTION框架中,實(shí)現(xiàn)比較要實(shí)現(xiàn)什么樣的接口?答:用插入法進(jìn)行排序代碼如下packagetest;importjava.util.*;classInsertSort{ArrayListal;publicInsertSort(intnum,intmod){al=newArrayList(num);Randomrand=newRandom();System.out.println("TheArrayListSortBefore:");for(inti=0;i<num;i++){al.add(newInteger(Math.abs(rand.nextInt())%mod+1));System.out.println("al["+i+"]="+al.get(i));}}publicvoidSortIt(){IntegertempInt;intMaxSize=1;for(inti=1;i<al.size();i++){tempInt=(Integer)al.remove(i);if(tempIValue()>=((Integer)al.get(MaxSize-1)).intValue()){al.add(MaxSize,tempInt);MaxSize++;System.out.println(al.toString());}else{for(intj=0;j<MaxSize;j++){if(((Integer)al.get(j)).intValue()>=tempIValue()){al.add(j,tempInt);MaxSize++;System.out.println(al.toString());break;}}}}System.out.println("TheArrayListSortAfter:");for(inti=0;i<al.size();i++){System.out.println("al["+i+"]="+al.get(i));}}publicstaticvoidmain(String[]args){InsertSortis=newInsertSort(10,100);is.SortIt();}}JAVA類(lèi)實(shí)現(xiàn)序例化的方法是實(shí)現(xiàn)java.io.Serializable接口Collection框架中實(shí)現(xiàn)比較要實(shí)現(xiàn)Comparable接口和Comparator接口15、編程:編寫(xiě)一個(gè)截取字符串的函數(shù),輸入為一個(gè)字符串和字節(jié)數(shù),輸出為按字節(jié)截取的字符串。但是要保證漢字不被截半個(gè),如“我ABC”4,應(yīng)該截為“我AB”,輸入“我ABC漢DEF”,6,應(yīng)該輸出為“我ABC”而不是“我ABC+漢的半個(gè)”。答:代碼如下:packagetest;classSplitString{StringSplitStr;intSplitByte;publicSplitString(Stringstr,intbytes){SplitStr=str;SplitByte=bytes;System.out.println("TheStringis:′"+SplitStr+"′;SplitBytes="+SplitByte);}publicvoidSplitIt(){intloopCount;loopCount=(SplitStr.length()%SplitByte==0)?(SplitStr.length()/SplitByte):(SplitStr.length()/SplitByte+1);System.out.println("WillSplitinto"+loopCount);for(inti=1;i<=loopCount;i++){if(i==loopCount){System.out.println(SplitStr.substring((i-1)*SplitByte,SplitStr.length()));}else{System.out.println(SplitStr.substring((i-1)*SplitByte,(i*SplitByte)));}}}publicstaticvoidmain(String[]args){SplitStringss=newSplitString("test中dd文dsaf中男大3443n中國(guó)43中國(guó)人0ewldfls=103",4);ss.SplitIt();}}16、JAVA多線程編程。用JAVA寫(xiě)一個(gè)多線程程序,如寫(xiě)四個(gè)線程,二個(gè)加1,二個(gè)對(duì)一個(gè)變量減一,輸出。希望大家補(bǔ)上,謝謝17、STRING與STRINGBUFFER的區(qū)別。答:STRING的長(zhǎng)度是不可變的,STRINGBUFFER的長(zhǎng)度是可變的。如果你對(duì)字符串中的內(nèi)容經(jīng)常進(jìn)行操作,特別是內(nèi)容要修改時(shí),那么使用StringBuffer,如果最后需要String,那么使用StringBuffer的toString()方法Jsp方面1、jsp有哪些內(nèi)置對(duì)象?作用分別是什么?答:JSP共有以下9種基本內(nèi)置組件(可與ASP的6種內(nèi)部組件相對(duì)應(yīng)):request用戶端請(qǐng)求,此請(qǐng)求會(huì)包含來(lái)自GET/POST請(qǐng)求的參數(shù)response網(wǎng)頁(yè)傳回用戶端的回應(yīng)pageContext網(wǎng)頁(yè)的屬性是在這里管理session與請(qǐng)求有關(guān)的會(huì)話期applicationservlet正在執(zhí)行的內(nèi)容out用來(lái)傳送回應(yīng)的輸出configservlet的構(gòu)架部件pageJSP網(wǎng)頁(yè)本身exception針對(duì)錯(cuò)誤網(wǎng)頁(yè),未捕捉的例外2、jsp有哪些動(dòng)作?作用分別是什么?答:JSP共有以下6種基本動(dòng)作jsp:include:在頁(yè)面被請(qǐng)求的時(shí)候引入一個(gè)文件。jsp:useBean:尋找或者實(shí)例化一個(gè)JavaBean。jsp:setProperty:設(shè)置JavaBean的屬性。jsp:getProperty:輸出某個(gè)JavaBean的屬性。jsp:forward:把請(qǐng)求轉(zhuǎn)到一個(gè)新的頁(yè)面。jsp:plugin:根據(jù)瀏覽器類(lèi)型為Java插件生成OBJECT或EMBED標(biāo)記3、JSP中動(dòng)態(tài)INCLUDE與靜態(tài)INCLUDE的區(qū)別?答:動(dòng)態(tài)INCLUDE用jsp:include動(dòng)作實(shí)現(xiàn)<jsp:includepage="included.jsp"flush="true"/>它總是會(huì)檢查所含文件中的變化,適合用于包含動(dòng)態(tài)頁(yè)面,并且可以帶參數(shù)靜態(tài)INCLUDE用include偽碼實(shí)現(xiàn),定不會(huì)檢查所含文件的變化,適用于包含靜態(tài)頁(yè)面<%@includefile="included.htm"%>4、兩種跳轉(zhuǎn)方式分別是什么?有什么區(qū)別?答:有兩種,分別為:<jsp:includepage="included.jsp"flush="true"><jsp:forwardpage="nextpage.jsp"/>前者頁(yè)面不會(huì)轉(zhuǎn)向include所指的頁(yè)面,只是顯示該頁(yè)的結(jié)果,主頁(yè)面還是原來(lái)的頁(yè)面。執(zhí)行完后還會(huì)回來(lái),相當(dāng)于函數(shù)調(diào)用。并且可以帶參數(shù).后者完全轉(zhuǎn)向新頁(yè)面,不會(huì)再回來(lái)。相當(dāng)于goto語(yǔ)句。Servlet方面1、說(shuō)一說(shuō)Servlet的生命周期?答:servlet有良好的生存期的定義,包括加載和實(shí)例化、初始化、處理請(qǐng)求以及服務(wù)結(jié)束。這個(gè)生存期由javax.servlet.Servlet接口的init,service和destroy方法表達(dá)。2、Servlet版本間(忘了問(wèn)的是哪兩個(gè)版本了)的不同?希望大家補(bǔ)上,謝謝3、JAVASERVLETAPI中forward()與redirect()的區(qū)別?答:前者僅是容器中控制權(quán)的轉(zhuǎn)向,在客戶端瀏覽器地址欄中不會(huì)顯示出轉(zhuǎn)向后的地址;后者則是完全的跳轉(zhuǎn),瀏覽器將會(huì)得到跳轉(zhuǎn)的地址,并重新發(fā)送請(qǐng)求鏈接。這樣,從瀏覽器的地址欄中可以看到跳轉(zhuǎn)后的鏈接地址。所以,前者更加高效,在前者可以滿足需要時(shí),盡量使用forward()方法,并且,這樣也有助于隱藏實(shí)際的鏈接。在有些情況下,比如,需要跳轉(zhuǎn)到一個(gè)其它服務(wù)器上的資源,則必須使用sendRedirect()方法。4、Servlet的基本架構(gòu)publicclassServletNameextendsHttpServlet{publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{}publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{}}Jdbc、Jdo方面1、可能會(huì)讓你寫(xiě)一段Jdbc連Oracle的程序,并實(shí)現(xiàn)數(shù)據(jù)查詢(xún).答:程序如下:packagehello.ant;importjava.sql.*;publicclassjdbc{StringdbUrl="jdbc:oracle:thin:@:1521:orcl";StringtheUser="admin";StringthePw="manager";Connectionc=null;Statementconn;ResultSetrs=null;publicjdbc(){try{Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();c=DriverManager.getConnection(dbUrl,theUser,thePw);conn=c.createStatement();}catch(Exceptione){e.printStackTrace();}}publicbooleanexecuteUpdate(Stringsql){try{conn.executeUpdate(sql);returntrue;}catch(SQLExceptione){e.printStackTrace();returnfalse;}}publicResultSetexecuteQuery(Stringsql){rs=null;try{rs=conn.executeQuery(sql);}catch(SQLExceptione){e.printStackTrace();}returnrs;}publicvoidclose(){try{conn.close();c.close();}catch(Exceptione){e.printStackTrace();}}publicstaticvoidmain(String[]args){ResultSetrs;jdbcconn=newjdbc();rs=conn.executeQuery("select*fromtest");try{while(rs.next()){System.out.println(rs.getString("id"));System.out.println(rs.getString("name"));}}catch(Exceptione){e.printStackTrace();}}}2、Class.forName的作用?為什么要用?答:調(diào)用該訪問(wèn)返回一個(gè)以字符串指定類(lèi)名的類(lèi)的對(duì)象。3、Jdo是什么?答:JDO是Java對(duì)象持久化的新的規(guī)范,為javadataobject的簡(jiǎn)稱(chēng),也是一個(gè)用于存取某種數(shù)據(jù)倉(cāng)庫(kù)中的對(duì)象的標(biāo)準(zhǔn)化API。JDO提供了透明的對(duì)象存儲(chǔ),因此對(duì)開(kāi)發(fā)人員來(lái)說(shuō),存儲(chǔ)數(shù)據(jù)對(duì)象完全不需要額外的代碼(如JDBCAPI的使用)。這些繁瑣的例行工作已經(jīng)轉(zhuǎn)移到JDO產(chǎn)品提供商身上,使開(kāi)發(fā)人員解脫出來(lái),從而集中時(shí)間和精力在業(yè)務(wù)邏輯上。另外,JDO很靈活,因?yàn)樗梢栽谌魏螖?shù)據(jù)底層上運(yùn)行。JDBC只是面向關(guān)系數(shù)據(jù)庫(kù)(RDBMS)JDO更通用,提供到任何數(shù)據(jù)底層的存儲(chǔ)功能,比如關(guān)系數(shù)據(jù)庫(kù)、文件、XML以及對(duì)象數(shù)據(jù)庫(kù)(ODBMS)等等,使得應(yīng)用可移植性更強(qiáng)。4、在ORACLE大數(shù)據(jù)量下的分頁(yè)解決方法。一般用截取ID方法,還有是三層嵌套方法。答:一種分頁(yè)方法<%inti=1;intnumPages=14;Stringpages=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;intPageCount=(i%numPages==0)?(i/numPages):(i/numPages+1);intnextPage;intupPage;nextPage=currentPage+1;if(nextPage>=intPageCount)nextPage=intPageCount;upPage=current1;if(upPage<=1)upPage=1;rs.close();sql="select*fromtables";rs=DBLink.executeQuery(sql);i=0;while((i<numPages*(current1))&&rs.next()){i++;}%>//輸出內(nèi)容//輸出翻頁(yè)連接合計(jì):<%=currentPage%>/<%=intPageCount%><ahref="List.jsp?page=1">第一頁(yè)</a><ahref="List.jsp?page=<%=upPage%>">上一頁(yè)</a><%for(intj=1;j<=intPageCount;j++){if(currentPage!=j){%><ahref="list.jsp?page=<%=j%>">[<%=j%>]</a><%}else{out.println(j);}}%><ahref="List.jsp?page=<%=nextPage%>">下一頁(yè)</a><ahref="List.jsp?page=<%=intPageCount%>">最后頁(yè)</a>Xml方面1、xml有哪些解析技術(shù)?區(qū)別是什么?答:有DOM,SAX,STAX等DOM:處理大型文件時(shí)其性能下降的非常厲害。這個(gè)問(wèn)題是由DOM的樹(shù)結(jié)構(gòu)所造成的,這種結(jié)構(gòu)占用的內(nèi)存較多,而且DOM必須在解析文件之前把整個(gè)文檔裝入內(nèi)存,適合對(duì)XML的隨機(jī)訪問(wèn)SAX:不現(xiàn)于DOM,SAX是事件驅(qū)動(dòng)型的XML解析方式。它順序讀取XML文件,不需要一次全部裝載整個(gè)文件。當(dāng)遇到像文件開(kāi)頭,文檔結(jié)束,或者標(biāo)簽開(kāi)頭與標(biāo)簽結(jié)束時(shí),它會(huì)觸發(fā)一個(gè)事件,用戶通過(guò)在其回調(diào)事件中寫(xiě)入處理代碼來(lái)處理XML文件,適合對(duì)XML的順序訪問(wèn)STAX:StreamingAPIforXML(StAX)2、你在項(xiàng)目中用到了xml技術(shù)的哪些方面?如何實(shí)現(xiàn)的?答:用到了數(shù)據(jù)存貯,信息配置兩方面。在做數(shù)據(jù)交換平臺(tái)時(shí),將不能數(shù)據(jù)源的數(shù)據(jù)組裝成XML文件,然后將XML文件壓縮打包加密后通過(guò)網(wǎng)絡(luò)傳送給接收者,接收解密與解壓縮后再同XML文件中還原相關(guān)信息進(jìn)行處理。在做軟件配置時(shí),利用XML可以很方便的進(jìn)行,軟件的各種配置參數(shù)都存貯在XML文件中。3、用jdom解析xml文件時(shí)如何解決中文問(wèn)題?如何解析?答:看如下代碼,用編碼方式加以解決packagetest;importjava.io.*;publicclassDOMTest{privateStringinFile="c:\\people.xml";privateStringoutFile="c:\\people.xml";publicstaticvoidmain(Stringargs[]){newDOMTest();}publicDOMTest(){try{javax.xml.parsers.DocumentBuilderbuilder=javax.xml.parsers.DocumentBuilderFactory.newInstance().newDocumentBuilder();org.w3c.dom.Documentdoc=builder.newDocument();org.w3c.dom.Elementroot=doc.createElement("老師");org.w3c.dom.Elementwang=doc.createElement("王");org.w3c.dom.Elementliu=doc.createElement("劉");wang.appendChild(doc.createTextNode("我是王老師"));root.appendChild(wang);doc.appendChild(root);javax.xml.transform.Transformertransformer=javax.xml.transform.TransformerFactory.newInstance().newTransformer();transformer.setOutputProperty(javax.xml.transform.OutputKeys.ENCODING,"gb2312");transformer.setOutputProperty(javax.xml.transform.OutputKeys.INDENT,"yes");transformer.transform(newjavax.xml.transform.dom.DOMSource(doc),newjavax.xml.transform.stream.StreamResult(outFile));}catch(Exceptione){System.out.println(e.getMessage());}}}4、編程用JAVA解析XML的方式.答:用SAX方式解析XML,XML文件如下:<?xmlversion="1.0"encoding="gb2312"?><person><name>王小明</name><college>信息學(xué)院</college><telephone>6258113</telephone><notes>男,1955年生,博士,95年調(diào)入海南大學(xué)</notes></person>事件回調(diào)類(lèi)SAXHandler.javaimportjava.io.*;importjava.util.Hashtable;importorg.xml.sax.*;publicclassSAXHandlerextendsHandlerBase{privateHashtabletable=newHashtable();privateStringcurrentElement=null;privateStringcurrentValue=null;publicvoidsetTable(Hashtabletable){this.table=table;}publicHashtablegetTable(){returntable;}publicvoidstartElement(Stringtag,AttributeListattrs)throwsSAXException{currentElement=tag;}publicvoidcharacters(char[]ch,intstart,intlength)throwsSAXException{currentValue=newString(ch,start,length);}publicvoidendElement(Stringname)throwsSAXException{if(currentElement.equals(name))table.put(currentElement,currentValue);}}JSP內(nèi)容顯示源碼,SaxXml.jsp:<HTML><HEAD><TITLE>剖析XML文件people.xml</TITLE></HEAD><BODY><%@pageerrorPage="ErrPage.jsp"contentType="text/html;charset=GB2312"%><%@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>教師信息表</CAPTION>");out.println("<TR><TD>姓名</TD>"+"<TD>"+(String)hashTable.get(newString("name"))+"</TD></TR>");out.println("<TR><TD>學(xué)院</TD>"+"<TD>"+(String)hashTable.get(newString("college"))+"</TD></TR>");out.println("<TR><TD>電話</TD>"+"<TD>"+(String)hashTable.get(newString("telephone"))+"</TD></TR>");out.println("<TR><TD>備注</TD>"+"<TD>"+(String)hashTable.get(newString("notes"))+"</TD></TR>");out.println("</TABLE>");%></BODY></HTML>EJB方面1、EJB2.0有哪些內(nèi)容?分別用在什么場(chǎng)合?EJB2.0和EJB1.1的區(qū)別?答:規(guī)范內(nèi)容包括Bean提供者,應(yīng)用程序裝配者,EJB容器,EJB配置工具,EJB服務(wù)提供者,系統(tǒng)管理員。這里面,EJB容器是EJB之所以能夠運(yùn)行的核心。EJB容器管理著EJB的創(chuàng)建,撤消,激活,去活,與數(shù)據(jù)庫(kù)的連接等等重要的核心工作。JSP,Servlet,EJB,JNDI,JDBC,JMS2、EJB與JAVABEAN的區(qū)別?答:JavaBean是可復(fù)用的組件,對(duì)JavaBean并沒(méi)有嚴(yán)格的規(guī)范,理論上講,任何一個(gè)Java類(lèi)都可以是一個(gè)Bean。但通常情況下,由于JavaBean是被容器所創(chuàng)建(如Tomcat)的,所以JavaBean應(yīng)具有一個(gè)無(wú)參的構(gòu)造器,另外,通常JavaBean還要實(shí)現(xiàn)Serializable接口用于實(shí)現(xiàn)Bean的持久性。JavaBean實(shí)際上相當(dāng)于微軟COM模型中的本地進(jìn)程內(nèi)COM組件,它是不能被跨進(jìn)程訪問(wèn)的。EnterpriseJavaBean相當(dāng)于DCOM,即分布式組件。它是基于Java的遠(yuǎn)程方法調(diào)用(RMI)技術(shù)的,所以EJB可以被遠(yuǎn)程訪問(wèn)(跨進(jìn)程、跨計(jì)算機(jī))。但EJB必須被布署在諸如Webspere、WebLogic這樣的容器中,EJB客戶從不直接訪問(wèn)真正的EJB組件,而是通過(guò)其容器訪問(wèn)。EJB容器是EJB組件的代理,EJB組件由容器所創(chuàng)建和管理??蛻敉ㄟ^(guò)容器來(lái)訪問(wèn)真正的EJB組件。3、EJB的基本架構(gòu)答:一個(gè)EJB包括三個(gè)部分:RemoteInterface接口的代碼packageBeans;importjavax.ejb.EJBObject;importjava.rmi.RemoteException;publicinterfaceAddextendsEJBObject{//somemethoddeclare}HomeInterface接口的代碼packageBeans;importjava.rmi.RemoteException;importjaax.ejb.CreateException;importjavax.ejb.EJBHome;publicinterfaceAddHomeextendsEJBHome{//somemethoddeclare}EJB類(lèi)的代碼packageBeans;importjava.rmi.RemoteException;importjavax.ejb.SessionBean;importjavx.ejb.SessionContext;publicclassAddBeanImplementsSessionBean{//somemethoddeclare}J2EE,MVC方面1、MVC的各個(gè)部分都有那些技術(shù)來(lái)實(shí)現(xiàn)?如何實(shí)現(xiàn)?答:MVC是Model-View-Controller的簡(jiǎn)寫(xiě)。"Model"代表

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論