各大java真題80中科軟股份3面試題_第1頁
各大java真題80中科軟股份3面試題_第2頁
各大java真題80中科軟股份3面試題_第3頁
各大java真題80中科軟股份3面試題_第4頁
各大java真題80中科軟股份3面試題_第5頁
已閱讀5頁,還剩115頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、用String的方法將數據類型轉換為String2、有一個不定長度的String,其中前面是字母,后邊是數字,要求寫一個方法得到其中的數字以String的形式返回,數字保留小數點后兩位,不四舍五入,截去如果數字沒有小數點,0的小數,例如:”abcd123″,得到”123.00″.2publicStringgetString(Stringstr){StringgetNumber;getNumber= ceAll(“[a-z|A-Z]“,if(getNumber.indexOf(“.”)==-1){getNumber=}elseif(getNumber.indexOf(“.”)==getNumber.length()-1){getNumber=getNumber+”00″;}elseif(getNumber.indexOf(“.”)==getNumber.length()-getNumber=}elsegetNumber=getNumber.substring(0,}}return}1類 2tomcattomcat128MB,在較大型的應用項目中,這點內存是不夠的,需要調大。Unix下,在文件{tomcat_home}/bin/catalina.sh的前面,增加如下設置:JAVA_OPTS=’-Xms-Xmx【可以使用的最大內存】’JAVA_OPTS=’-Xms256m-256MB512MB3doGet()和doPost()的區(qū)別?doGetdoPost接收兩個參數:HttpServletRequestHttpServletResponseHTTP協(xié)議要么通過在URLWeb服務器傳遞信息,要么獨立于URL傳遞信息。第一種稱作GET命令,而第二種稱作POST命令。GET命令的優(yōu)點是,URL包含了檢索請求信息所需的所有信息因此,可將其加入書簽以便將來重新調用。而POST命令獨立于URL發(fā)送附加信息,提供4常用的標準的sql增加insertintotbl_emp(name,password,id刪除:deletefromtbl_empwherename=”yxx”;查詢select*fromtbl_empwherename=”yxx”;更新updatetbl_empsetname=”xiaoxinwhereid12;5string和stringbuffer的區(qū)別?它們都是處理字符串的類,但是它們有一個最大的區(qū)別,那就是,String對象是 符串,相反,如果你希望改動,則應使用StringBuffer類作為替換.6在jsp頁面中如何傳遞對象? 7常用的集合類?java.util中的集合類包含Java中某些最常用的類。最常用的集合類是List和Map。List的具體實現包括ArrayList和Vector,它們是可變大小的列表,比較適合構建、 列表。List適用于按數值索引 Map提供了一個更通用的元素方法。Map集合類用于元素對(稱作“鍵”和“值”),其ListMapListMap都在定義java.util中外,兩者并沒有直接的聯系。本文將著重介紹Java套件中附帶的Map,同時還將介紹如何采用或實現更適用于您應用程序特定數據的Map。常出現的異常經常使用的包,接口,5個 方法,但不能在該類中實現該類的情況。不能創(chuàng)建 的所有方法都是抽象的,沒有一個有程序體。接口只可以定義staticfinal成員變量。接口的實現與子 或從接口類型轉換,instanceof運算符可以用來決定某對象的類是否實現了接口。動態(tài)include()和靜態(tài)include()的區(qū)別struts的原理數據連接池的原理采用連接池之后,只要少量的連接對象就可以滿足大量客戶端的需要。每接池都與一個獨立的到達最大連接對象數量限額為止。如果程序請求接對象時沒有空閑的連接對象可用,且連接池式以可乘之機。如果必須用到用戶輸入的數據,務必進行嚴格的驗證。SessionFacadePattern:使用SessionBean MessageFacadePattern:實現異步調用EJBCommandPattern:使用CommandJavaBeans取代SessionBean,實現輕量級DataTransferObjectFactory:通過DTOFactory簡化EntityBean數據提供特性GenericAttributeAccess:通過AttibuteAccess接口簡化EntityBean數據提供特性BusinessInterface:通過(本地)Bean四種會話技術會話作用域ServletsJSP頁面描述page否是代表與一個頁面相關的對象和屬性。一個頁面由一個編譯Javaservlet類(includeinclude動作)servletservlet的JSP頁面request是是代表與Web客戶機發(fā)出的一個請求相關的對象和屬性。一個請求可能多個頁面,涉及多個Web組件(由于forward指令和include動作的關系)session是是代表與用于某個Web客戶機的一個用戶體驗相關的對象和屬性。一個Web會話可以也經常會多個客戶機請求application是是代表與整個Web應用程序相關的對象和屬性。這實質上是整個Web應用程序,包括多個頁面、請求和會話的一個全局作用域forwardinclude和redirect的不同forward與include Request范圍內的對象,而redirect則不行,即:如果一個javabean被 request范圍的話,則被forward到的資源也可以 這個javabean,而redriect則不行。forward與include基本上都是轉發(fā)到context內部的資源,而redirect可以重定向到外部的資源,如: jsp的內值對象request用戶端請求,此請求會包含來自GET/POSTresponse網頁傳回用戶端的回應pageContext網頁的屬性是在這里管理session與請求有關的會話期applicationservlet正在執(zhí)行的內容out用來傳送回應的輸出configservletpageJSPexceptionEJBBeanEJB容器提供者EJBEJBBeanEJB容器提供者EJB服務器提供者三個對象是Remote(Local)接口、Home(LocalHome)接口,Bean類ArithmeticException,ArrayStoreException,BufferOverflowException,BufferUnderflowException,CannotRedoException,CannotUndoException,ClassCastException,CMMException,ConcurrentModificationException,DOMException,EmptyStackException,IllegalArgumentException,IllegalMonitorStateException,IllegalPathStateException,ImagingOpException, ception,答:JSP9種基本內置組件(可與ASP6種內部組件相對應request用戶端請求,此請求會包含來自GET/POSTresponse網頁傳回用戶端的回應pageContext網頁的屬性是在這里管理session與請求有關的會話期applicationservlet正在執(zhí)行的內容out用來傳送回應的輸出configservletpageJSPexception2、jsp有哪些動作?作用分別是什么?答:JSP共有以下6種基本動作jsp:useBean:尋找或者實例化一個JavaBean。jsp:setProperty:設置JavaBean的屬性。jsp:getProperty:輸出某個JavaBean的屬性。jsp:plugin:根據瀏覽器類型為Java插件生成OBJECT或EMBED3、JSP中動態(tài)INCLUDE與靜態(tài)INCLUDE的區(qū)別?答:動態(tài)INCLUDE用jsp:include動作實現<jsp:includepage=”included.jspflush=”true/>它總是會檢查所含文件中的變化,適合用于包靜態(tài)INCLUDE用include偽碼實現,<%@includefile=”included.htm”<jsp:includepage=”included.jsp”<jsp:forwardpage=前者頁面不會轉向include所指的頁面,只是顯示該頁的結果,主頁面還是原來的頁面。執(zhí)行完后還會回來,相當于函數調用。并且可以帶參數.后者完全轉向新頁面,不會再回來。相當于gotoJAVA1、作用域public,private,protected,以及不寫時的區(qū)別 同一package子孫類 其他packagepublic√√√ protected√√ friendly√ × √× ××不寫時默認為friendly2、protected√√ friendly√ × √× ××不寫時默認為friendly2、ArrayList和Vector的區(qū)別,HashMapHashtable答:就ArrayList與Vector主要從二方面來說一.同步性:Vector是線程安全的,也就是說是同步的,而ArrayList是線程序不安全的,不是同步的二.數據增長:當需要增長時,Vector默認增長為原來一培,而ArrayList卻是原來的一半HashMapHashTable二.同步性:HashtableHashMap是線程序不安全的,不是同步答:是能夠定義成為一個中文的,因為java中以unicode編碼,一個char16個字節(jié),所以放一個答:多線程有兩種實現方法,分別是繼承Thread類與實現Runnable接口同步的實現方面有兩種,分別是synchronized,wait與notifypackagepublicclass{public{}}子類packageimportpublicclassChildClassextends{public{}publicstaticvoidmain(String[]{FatherClassfc=newFatherClass();ChildClasscc=newChildClass();}}C:\>javatest.ChildClassFatherClassCreateFatherClassCreateChildClassCreatepackagetest;publicclass{privateclass{public{}}public{InterClassic=new}publicstaticvoidmain(String[]{OuterClassoc=new}}輸出結果C:\>javatest/OuterClassInterClassCreateOuterClassCreatepublicclassOuterClass{privatedoubled1=//insertcode}Youneedtoinsertaninnerclassdeclarationatline3.Whichtwoinnerclassdeclarationsvalid?(Chooseclasspublicstaticdoublemethoda(){return}publicclassstaticdoublemethoda(){return}privateclassInnerOne{doublemethoda(){returnd1;}}staticclassprotecteddoublemethoda(){return}class double}一.A、B d1出錯。故D 外部類的非靜態(tài)變量。故C正確四.答案為C、ESELEVLET1、說一說Servlet的生命周期答:servlet有良好的生存期的定義,包括加載和實例化、初始化、處理請求以及服務結束。這個生存期由javax.servlet.Servlet接口的init,service和destroy方法表達。2、Servlet版本間(忘了問的是哪兩個版本了)的不同?3、JAVASERVLETAPI中forward(與redirect()答前者僅是容器中制權的轉向在客戶端瀏器地址欄中不會示出轉向后地址;后者是完全的跳轉,瀏覽將會得到跳的地址,并新送請求 。這,從瀏覽器地址欄中可看跳轉后的 地。所以,前更加高效, 可以滿足需要時盡量使用frr)方法,并 必須使用sendRedirect()方法。publicclassServletNameextendsHttpServletpublicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{}publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{}}1、作用域public,private,protected,以及不寫時的區(qū)別作用 當前 同一package子孫 其他√√√√√√√×√√××√×××不寫時默認為2、ArrayList和Vector的區(qū)別,HashMapHashtable的區(qū)別答:就ArrayList與Vector主要從二方面來說.一.同步性:Vector是線程安全的,也就是說是同步的,而ArrayList是線程序不安全的,不是同步的二.數據增長:當需要增長時,Vector默認增長為原來一培,而ArrayList卻是原來的一半就HashMap與HashTable主要 面來說一.歷史原因:Hashtable是基于陳舊的Dictionary類的,HashMap是Java1.2引進的Map接口的一個二.同步性:HashtableHashMap是線程序不安全的,不是同步答:是能夠定義成為一個中文的,因為java中以unicode編碼,一個char16個字節(jié),所以放一個答:多線程有兩種實現方法,分別是繼承Thread類與實現Runnable接口同步的實現方面有兩種,分別是synchronized,wait與notifypackagepublicclass{public{}}子類packageimportpublicclassChildClassextends{public{}publicstaticvoidmain(String[]{FatherClassfc=newFatherClass();ChildClasscc=newChildClass();}}C:\>javatest.ChildClassFatherClassCreateFatherClassCreateChildClassCreatepackagetest;publicclass{privateclass{public{}}public{InterClassic=new}publicstaticvoidmain(String[]{OuterClassoc=new}}輸出結果C:\>javatest/OuterClassInterClassCreateOuterClassCreatepublicclassOuterClass{privatedoubled1=//insertcode}Youneedtoinsertaninnerclassdeclarationatline3.Whichtwoinnerclassdeclarationsvalid?(Chooseclasspublicstaticdoublemethoda(){return}publicclassstaticdoublemethoda(){return}privateclassInnerOne{doublemethoda(){returnd1;}}staticclassprotecteddoublemethoda(){return}class double}一.A、B d1出錯。故D 外部類的非靜態(tài)變量。故C正確四.答案為C、E 軟的面試題,20分,分值最高的一道,我回答的很簡單題:如何寫出高性能的SQL語句?如何寫出性能優(yōu)良的ORACLE的解析器按照從右到左的順序處理FROM子句中的表名,FROM子句中寫在最后的表(基礎表drivingtable)將被最先處理,在FROM子句中包含多個表的情況下,你必須選擇記錄條數最少的表作為基礎表。如果有3個以上的表連接查詢,那就需要選擇交叉表(intersectiontable)作為基礎表,交叉表 ORACLE采用自下而上的順序解析WHERE子句,根據這個原理,表之間的連接必須寫在其他WHERE條件之前,那些可以過濾掉最大數量記錄的條件必須寫在WHERE子句的末尾.SELECT*ORACLE在解析的過程中,會將’*’依次轉換成所有的列名,這個工作是通過查詢數據字典完成的, 減 ORACLE在內部執(zhí)行了許多工作解析SQL語句估算索引的利用率在SQL*Plus,SQL*Forms和Pro*C中重新設置ARRAYSIZE參數,可以增加每次數據庫 檢索數據量,建議值為200使用DECODE使用DECODE函數可以避免重復掃描相同記錄或重復連接相同的表 因為使用了ROWID)DELETEFROMEMPEWHEREE.ROWID>(SELECTMIN(X.ROWID)FROMEMPXWHEREX.EMP_NO=E.EMP_NO);用TRUNCATE替代當刪除表中的記錄時,在通常情況下回滾段(rollbacksegments用來存放可以被恢復的信息如果你沒有COMMIT事務,ORACLE會將數據恢復到刪除之前的狀態(tài)(準確地說是恢復到執(zhí)行刪除命令之前的狀況)而當運用TRUNCATE時,回滾段不再存放任何可被恢復的信息.當命令運行后,數據不能被恢復.因此很少的資源被調用,執(zhí)行時間也會很短.(譯者按:TRUNCATE只在刪除全表適用,TRUNCATE是DDL不是DML)盡量多使用只要有可能,在程序中盡量多使用COMMIT,這樣程序的性能得到提高,需求也會因為COMMIT所釋放redologbuffer用Where子句替換HAVINGHAVING子句HAVING只會在檢索出所有記錄之后才對結果集進行過濾這個處理需要排序,總計等操作.如果能通過WHERE子句限制記錄的數目,那就能減少這方面的開銷.(非oracle中)on、where、having這三個都可以加條件的子句中,on是最先執(zhí)行,where次之,having最后,因為on是先把不符合條件的記錄過濾后才進行統(tǒng)計,它就可以減少中間運算要處理的數據,按理說應該速度是最快的,where也應該比having快點的,因為它過濾數據后才進行sum,在兩個表聯接時才用onwhere跟having比較了。在這單表查詢統(tǒng)計的情況下,如果要過濾的條件沒有涉及到要計算字段,那它們的結果是一樣的,只是where可以使用rushmore技術,而having就不能,在速度上后者要慢如果要涉及到計算的字段,就表示在沒計算之前,這個字段的值是不確定的,根據上篇寫的工作流程,where的作用時間是在計算之前就完成的,而having就是在計算后才起作用的,所以在這種情況下,兩者的結果會不同。在多表聯接查詢時,onwherewhere進行過濾,然后再計算,計算完后再由having進行過濾。由此可見,要想過濾條件起到正確的作用,首先在含有子查詢的SQL語句中,要特別注意減少對表的查詢.SELECTTAB_NAMEFROMTABLESWHERE(TAB_NAME,DB_VER)=(SELECTTAB_NAME,DB_VERFROMTAB_COLUMNSWHEREVERSION=604)通過內部函數提高SQL效率復雜的SQL往往犧牲了執(zhí)行效率能夠掌握上面的運用函數解決問題的方法在實際工作中是非常有意使用表的別名當在SQL語句中連接多個表時請使用表的別名并把別名前綴于每個Column上.這樣一來,就可以減少解析的時間并減少那些由Column歧義引起的語法錯誤.用EXISTSINNOTEXISTS替代NOT在許多基于基礎表的查詢中,為了滿足一個條件,往往需要對另一個表進行聯接.在這種情況下,使用EXISTS(或NOTEXISTS)通常將提高查詢的效率在子查詢中,NOTIN子句將執(zhí)行一個內部的排序和合并無論在哪種情況下,NOTIN(因為它對子查詢中的表執(zhí)行了一個全表遍歷為了避免使用NOTIN,我們可以把它改寫成外連接(OuterJoins)或NOTEXISTS.(高效)SELECT*FROMEMP基礎表WHEREEMPNO>0ANDEXISTS(SELECT‘X’FROMDEPTWHEREDEPT.DEPTNO=EMP.DEPTNOANDLOC=‘MELB’)(低效)SELECT*FROMEMP基礎表WHEREEMPNO0ANDDEPTNOIN(SELECTDEPTNOFROMDEPTWHERELOC=‘MELB’)識別’低效執(zhí)行’的SQL雖然目前各種關于SQL優(yōu)化的圖形化工具層出不窮,但是寫出自己的SQL工具來解決問題始終是一個SELECTEXECUTIONS,DISK_READS,BUFFER_GETS,ROUND((BUFFER_GETS-DISK_READS)/BUFFER_GETS,2)Hit_radio,ROUND(DISK_READS/EXECUTIONS,2)Reads_per_run,FROMV$SQLAREAWHEREEXECUTIONS>0ANDBUFFER_GETS>0AND(BUFFER_GETS-DISK_READS)/BUFFER_GETS<0.8ORDERBY4DESC;索引是表的一個概念部分,用來提高檢索數據的效率,ORACLE使用了一個復雜的自平衡B-tree結構.通常,通過索引查詢數據比全表掃描要快.當ORACLE找出執(zhí)行查詢和Update語句的最佳路徑時,ORACLE優(yōu)化器將使用索引.同樣在聯結多個表時使用索引也可以提高效率.另一個使用索引的好處是,它提供了主鍵(primarykey)的唯一性驗證.LONG或LONGRAW數據類型,你可以索引幾乎所有的列通常在大型表中使用索引特別有效當然,你也會發(fā)現在掃描小表時,使用索引同樣能提高效率.雖然使用索引能得到查詢效率的提高,但是我們也必須注意到它的代價.索引需要空間來,也需要定期,每當有記錄在表中增減或索引列被修改時,索引本身也會被修改.這意味著每條記錄的INSERTDELETEUPDATE45次的磁盤I/O因為索引需要額外的空間和處理,ALTERINDEX<INDEXNAME>REBUILD用EXISTS替換當提交一個包含一對多表信息(比如部門表和雇員表)的查詢時,避免在SELECT子句中使用DISTINCT.一般可以考慮用EXIST替換EXISTS使查詢更為迅速,因為RDBMS模塊將在子查詢的條件一旦滿足后,立刻返回結果.例子:(低效SELECTDISTINCTDEPT_NO,DEPT_NAMEFROMDEPTD,EMPEWHERED.DEPT_NO=E.DEPT_NO(高效SELECTDEPT_NO,DEPT_NAMEFROMDEPTDWHEREEXISTS(SELECTFROMEMPEWHEREE.DEPT_NO=sql語句用大寫的;因為oracle總是先解析sql在java避免在索引列上使用NOT我們要避免在索引列上使用NOT,NOT會產生在和在索引列上使用函數相同的影響當ORACLE”遇第一題答一年以下直接刷掉,第二題答要加班費直接工資范圍3000-4000……我簡直無語了,看現在是金融 JAVABI,因到一個叫BIJJ1個半小時做完,然后可以走人。JAVA的題比較簡單,內容大概是:for(intj=0;j<=i;j++){System.out.print(j+”X”+i+”=”+j*i+”\t”);if(i=j)System.out.println(“\n”);}}遞歸遍歷某 sinosoft下的所有java文publicstaticvoidlisFile(Stringstr){Filefile=newFile(str);if(file.isDirectory()){File[]files=for(inti=0;i<files.length;i++){Stringfilename=files[i].getName();if(filename.trim().toLowerCase().endsWith(“.java”)){System.out.print(“files:“+files[i].getName()+”\t”);}Stringnn=files[i].getPath();lisFile(nn)}}}}給出一個JDBC操作的例子 publicstaticvoidmain(StringStringurl=“jdbc: :sqlserver://localhost:1433;database=NorthWind”;String_uname=“dbtest”;PreparedStatementpsmt=nullString_pwd=“889988″;Connectioncon=null; System.out.println“類實例化成功!con=DriverManager.getConnection(url,_uname,_pwd);psmt=con.prepareStatement(“insertintotestvalues(?,?)”);psmt.setString(1,“Jianghua”);psmt.setString(2,“ “);psmt.executeUpdate();psmt.setString(1,“XuFen”);psmt.setString(2,“ “);psmt.executeUpdate();}catch(Exceptionfnot.printStackTrace()psmt.close()con.close()}catch(Exceptione){e.printStackTrace()}}}SQL也不難的,給了兩個表,然后對兩個表進行查詢。問了主鍵,外鍵,索引有什么作用還有以Struts框架為例,向別人介紹MVC模式1、作用域public,private,protected,以及不寫時的區(qū)別作用 當前 同一package子孫 其他√√√√√√√×√√××√×××不寫時默認為2、ArrayList和Vector的區(qū)別,HashMapHashtable答:就ArrayList與Vector主要從二方面來說一.同步性:Vector是線程安全的,也就是說是同步的,而ArrayList二.數據增長:當需要增長時,Vector答:就ArrayList與Vector主要從二方面來說一.同步性:Vector是線程安全的,也就是說是同步的,而ArrayList二.數據增長:當需要增長時,Vector默認增長為原來一培,而ArrayListHashMapHashTable二.同步性:HashtableHashMap是線程序不安全的,不是同步答:是能夠定義成為一個中文的,因為java中以unicode編碼,一個char16個字節(jié),所以放一個答:多線程有兩種實現方法,分別是繼承Thread類與實現Runnable接口同步的實現方面有兩種,分別是synchronized,wait與notifypackagepublicclass{public{}}子類packageimportpublicclassChildClassextends{public{}publicstaticvoidmain(String[]{FatherClassfc=newFatherClass();ChildClasscc=newChildClass();}}C:\>javatest.ChildClassFatherClassCreateFatherClassCreateChildClassCreatepackagetest;publicclass{privateclass{public{}}public{InterClassic=new}publicstaticvoidmain(String[]{OuterClassoc=new}}輸出結果C:\>javatest/OuterClassInterClassCreateOuterClassCreatepublicclassOuterClass{privatedoubled1=//insertcode}Youneedtoinsertaninnerclassdeclarationatline3.Whichtwoinnerclassdeclarationsvalid?(Chooseclasspublicstaticdoublemethoda(){return}publicclassstaticdoublemethoda(){return}privateclassInnerOne{doublemethoda(){returnd1;}}staticclassprotecteddoublemethoda(){return}class double}一.A、B d1出錯。故D 外部類的非靜態(tài)變量。故C正確四.答案為C、E 8、float型floatf=3.4是否正確 9、介紹JAVA中的CollectionFrameWork(包括如何寫自己的數據結構答:CollectionFrameWork Collection是最基本的集合接口,一個Collection代表一組Object,即Collection的元素Mapkeyvalue 機制11、JAVA中的多形與繼承?答:抽象類與接口都用于抽象,但是抽象類(JAVA中)可以有自己的部分實現,而接口則完全是一個標13、Java的通信編程,編程題(或問答),用JAVASOCKET編程,讀服務器幾個字符,再寫入本地顯packagetest;.*;importjava.io.*;publicclass{privateServerSocketss;privateSocketsocket;privateBufferedReaderin;privatePrintWriterout;publicServer(){{ss=newServerSocket(10000);{socket=StringRemoteIP=socket.getInetAddress().getHostAddress();StringRemotePort=“:”+socket.getLocalPort(); comein!IP:”+RemoteIP+RemotePort);in=newBufferedReader(newStringline=in.readLine();System.out.println(“Cleintsendis:”+line);out=newout.println(“YourMessage}}catch(IOException{}}publicstaticvoidmain(String[]{new}端程序packagetest;importjava.io.*;.*;public{Socketsocket;BufferedReaderin;PrintWriterout; {{System.out.println(“TrytoConnectto:10000″);socket=newSocket(“″,10000);System.out.println(“TheServerConnected!”);System.out.println(“PleaseentersomeCharacter:”);BufferedReaderline=newBufferedReader(newout=newPrintWriter(socket.getOutputStream(),true);in=newBufferedReader(newInputStreamReader(socket.getInputStream()));}catch(IOException{}}publicstaticvoidmain(String[]{ }14JAVA實現一種排序,JAVA類實現序列化的方法(二種)?如在COLLECTION框架中,實現比packageimportjava.util.*;classInsertSort{ArrayListpublicInsertSort(intnum,int{al=newArrayList(num);Randomrand=newRandom();System.out.println(“TheArrayListSortfor(inti=0;i<num;i++{al.add(newInteger(Math.abs(rand.nextInt())%mod+}}publicvoid{IntegertempInt;intMaxSize=1;for(int{tempInt=(Integer)al.remove(i);{}elsefor(intj=0;j<MaxSize;j++{{}}}}System.out.println(“TheArrayListSortfor(int{}}publicstaticvoidmain(String[]{InsertSortis=newInsertSort(10,100);}}JAVA類實現序例化的方法是實現java.io.SerializableCollection框架中實現比較要實現ComparableComparator但是要保證漢字不被截半個,如“我ABC”4,應該截為“我AB”,輸入“我ABC漢DEF”,6,應該輸出為“我ABC”而不是“我ABC+漢的半個”。packageclass{StringSplitStr;intSplitByte;publicSplitString(Stringstr,int{System.out.println(“TheString}publicvoid{intSystem.out.println(“WillSplitintofor(inti=1;i<=loopCount;i++{if}else}}}publicstatic}}publicstaticvoidmain(String[]{SplitStringssnewSplitString(“testdd文dsaf3443n}}16、JAVA多線程編程。用JAVA1,二個對一個變量減17、STRING與STRINGBUFFER行操作,特別是內容要修改時,那么使用StringBufferString,那么使用StringBuffer的toString()方法Jsp答:JSP9種基本內置組件(可與ASP6種內部組件相對應request用戶端請求,此請求會包含來自GET/POSTresponsepageContextsession與請求有關的會話期applicationservlet正在執(zhí)行的內容out用來傳送回應的輸出configservletpageJSPexception2、jsp有哪些動作?作用分別是什么?答:JSP共有以下6種基本動作jsp:useBean:尋找或者實例化一個JavaBean。jsp:setProperty:設置JavaBean的屬性。jsp:getProperty:輸出某個JavaBean的屬性。jsp:plugin:根據瀏覽器類型為Java插件生成OBJECT或EMBED3、JSP中動態(tài)INCLUDE與靜態(tài)INCLUDE的區(qū)別?答:動態(tài)INCLUDE用jsp:include動作實現<jsp:includepage=”included.jspflush=”true/>它總是會檢查所含文件中的變化,適合用于包靜態(tài)INCLUDE用include偽碼實現,<%@includefile=”included.htm”<jsp:includepage=”included.jsp”<jsp:forwardpage=前者頁面不會轉向include所指的頁面,只是顯示該頁的結果,主頁面還是原來的頁面。執(zhí)行完后還會回來,相當于函數調用。并且可以帶參數.后者完全轉向新頁面,不會再回來。相當于goto1、說一說Servlet的生命周期答:servlet有良好的生存期的定義,包括加載和實例化、初始化、處理請求以及服務結束。這個生存期由javax.servlet.Servlet接口的init,service和destroy方法表達。2、Servlet版本間(忘了問的是哪兩個版本了)的不同?3、JAVASERVLETAPI中forward(與redirect()答前者僅是容器中制權的轉向在客戶端瀏器地址欄中不會示出轉向后地址;后者是完全的跳轉,瀏覽將會得到跳的地址,并新送請求 。這,從瀏覽器地址欄中可看跳轉后的 地。所以,前更加高效, 可以滿足需要時盡量使用frr)方法,并 必須使用sendRedirect()方法。publicclassServletNameextendsHttpServletpublicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{}publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{}}Jdbc、Jdo1、可能會讓你寫一段Jdbc連Oracle的程序,并實現數據查詢. importjava.sql.*;publicclassjdbc{StringdbUrl=”jdbc:oracle:thin:@:1521:orcl”;StringtheUser=”admin”;StringthePw=”manager”;Connectionc=null;Statementconn;ResultSetrs=null;public{c=DriverManager.getConnection(dbUrl,theUser,thePw);}catch(Exceptione){}}publicbooleanexecuteUpdate(String{{returntrue;}catch(SQLException{returnfalse;}}publicResultSetexecuteQuery(String{{}catch(SQLException{}return}publicvoid{{}catch(Exception{}}publicstaticvoidmain(String[]{ResultSetjdbcconn=newjdbc();rs=conn.executeQuery(“select*fromtest”);while{}}catch(Exception{}}}答:調用 答:JDO是Java對象持久化的新的規(guī)范,為javadataobject的簡稱,也是一個用于存取某種數據倉庫中的對象的標準化API。JDO提供了透明的對 要額外的代碼(如JDBCAPI的使用)JDO產品提供商身上,使開發(fā)人員解脫出來,從而集中時間和精力在業(yè)務邏輯上。另外,JDO很靈活,因為它可以在任何數據底層上運行。JDBC只是面向關系數據庫(RDBMS)JDO更通用,提供到任何數據底層的功能,比如關系數據庫、文件、XML以及對象數據庫(ODBMS)等等,使得應用可移植性更強。4、在ORACLEID方法,還有是三層嵌套方法。intintStringpages=request.getParameter(“page”)intcurrentPage=1;sql=“selectcount(*)fromtables”;ResultSetrs=DBLink.executeQuery(sql);while(rs.next())i=rs.getInt(1);intintPageCount=1;intnextPage;intnextPage=if(nextPage>=intPageCount)nextPage=intPageCount;upPage=current1;if(upPage<=1)upPage=1;sql=”select*fromtables”;for(intj=1;j<=intPageCount;j++){<a}}<ahref=”List.jsp?page=<%=nextPage%>”>下一頁</a><ahref=”Xml1、xml有哪些解析技術?區(qū)別是什么?答:有DOM,SAX,STAX等DOM:處理大型文件時其性能下降的非常厲害。這個問題是由DOM的樹結構所造成的,這種結構占用的內存較多,而且DOM必須在解析文件之前把整個文檔裝入內存,適合對XML的隨機 于DOM,SAX是 驅動型的XML解析方式。它順序 XML文件,不需要一次全部裝載整個文 中寫入處理代碼來處理XML文件,適合對XML的順序STAX:StreamingAPIforXML2、你在項目中用到了xml技術的哪些方面?如何實現的 ,將不能數據源的數據組裝成XML文件,然后將XML文件壓縮打包加密后通過網絡傳送給接收者,接收 與解壓縮后再同XML文件中還原相關信息進行處理。在做軟件配置時,利用XML可以很方便的進行,軟件的各種配置參數都存貯在XML文件中。3、用jdom解析xml文件時如何解決中文問題?如何解析?packagetest;importjava.io.*;publicclass{privateStringinFile=“c:\\people.xml”;privateStringoutFile=“c:\\people.xml”;publicstaticvoidmain(Stringargs[]){new}public{{ Builderbuilder doc=builder.new org.w3c.dom.Elementrootdoc.createElement(“老師”);org.w3c.dom.Elementwangdoc.createElement(org.w3c.dom.Elementliu=doc.createElement(“劉”); javax.xml.transform.Transformertransformer=transformer.transform(newjavax.xml.transform.dom.DOMSource(doc),}catch(Exception{System.out.println}}}4、編程用JAVA解析XML的方式答:用SAX方式解析XML,XML<?xmlversion=”1.0″ 回調類SAXHandler.javaimportjava.io.*;importjava.util.Hashtable;importorg.xml.sax.*;publicclassSAXHandlerextends{privateHashtabletable=newHashtable();privateStringcurren ement=null;privateStringcurrentValue=null;publicvoidsetTable(Hashtable{this.table=}publicHashtable{return}publicvoidstar ement(Stringtag,Attribu istattrs)throwsSAXException{ ement=}publicvoidcharacters(char[]ch,intstart,intlength)throwsSAXException{currentValue=newString(ch,start,}publicvoidendElement(Stringname)throws{if(curren ement,currentValue);}}JSP內容顯示源碼<TITLE>XML<%@page<%@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=SAXParsersp=spf.newSAXParser();SAXHandlerhandler=newSAXHandler();sp.parse(newInputSource(reader),handler);HashtablehashTable=handler.getTable(); </TD>”+“<TD>”+(String)hashTable.get(newString(“name”))+“</TD></TR>”);out.println(“<TR><TD>學院</TD>“<TD>(String)hashTable.get(new </TD>”+“<TD>”(String)hashTable.get(new ephone”))+out.println(“<TR><TD>備注</TD>“<TD>(String)hashTable.get(newString(“notes”))+“</TD></TR>”);EJB1、EJB2.0有哪些內容?分別用在什么場合EJB2.0和EJB1.1的區(qū)別答:規(guī)范內容包括Bean提供者,應用程序裝配者,EJB容器,EJB配置工具,EJB服務提供者,系統(tǒng)管理員。這里面,EJB容器是EJB之所以能夠運行的 。EJB容器管理著EJB的創(chuàng)建,撤消,激 2、EJB與JAVABEAN答:JavaBean是可復用的組件,對JavaBean并沒有嚴格的規(guī)范,理論上講,任何一個Java類都可BeanJavaBean是被容器所創(chuàng)建(如Tomcat)的,所以JavaBean應具有一個無參的構造器,另外,通常JavaBean還要實具有一個無參的構造器,另外,通常JavaBean還要實現Serializable接口用于實現Bean的持久性。JavaBean實際上相當于微軟COM模型中的本地進程內COM組件,它是不能被跨進程 EnterpriseJavaBean相當于DCOM,即分布式組件。它是基于Java的 的,所以EJB可以被 (跨進程、跨計算機)。但EJB必須被布署在諸如Webspere、 真正的EJB組件,而是通過其容 真正的EJB組件答:一個EJB包括三個部分RemoteInterfacepackageimportjavax.ejb.EJBObject;importjava.rmi.RemoteException;publicinterfaceAddextends{//somemethod}HomeInterfacepackageimportjava.rmi.RemoteException;importjaax.ejb.CreateException;importjavax.ejb.EJBHome;publicinterfaceAddHomeextends{//somemethod}packageimportimportjavax.ejb.SessionBean;importjavx.ejb.SessionContext;publicclassAddBeanImplements{//somemethod}J2EE,MVC答:MVC是Model-View-Controller的簡寫?!盡odel”代表的是應用的業(yè)務邏輯(通過JavaBean,EJB組件實現),View(由JSP頁面產生),”Controller應用的處理過程控制(一般是一個Servlet),通過這種設計模型把應用邏輯,處理過程和顯示邏輯分2、應用服務器與WEBSERVER的區(qū)別?答:Je22是Sun公司 級應用模型(enterprieseapplicationmodel).在這樣的一個應用系統(tǒng)中,可按照功能劃分為不同的組件,這些組件又可在不同計算機上,并且處于相應的層次(tier)中。所屬層次包括客戶層(clietntier)組件,web層和組件,Business層和組件,企業(yè)信息系統(tǒng)(EIS)層。4、WEBSERVICE 。JSWDL開發(fā)包的介紹。JAXP、JAXM的解釋。SOAP、UDDI,WSDL解答:WebService描述語言SOAP即簡單對象 協(xié)議(SimpleObjectAccessProtocol),它是用于交換XML編碼信息的輕量級協(xié)UDDI的目的是為電子商務建立標準;UDDI是一套基于Web的、分布式的、為WebService提供 ,同時也包含一組使企業(yè)能將自身提供的WebService 5、BS與CS的聯系與區(qū)別。6、STRUTS的應用(如STRUTS架構答:Struts是采用JavaServlet/JavaServerPages技術,開發(fā)Web應用程序的開放源碼的framework。采用Struts能開發(fā)出基于MVC(Model-View-Controller)Struts有一.包含一個controllerservlet,能將用戶的請求發(fā)送到相應的Action二.JSP自由tag庫,并且在controllerservlet三.提供了一系列實用對象:XML處理、通過JavareflectionAPIs自動處理JavaBeans屬性、答:每個模式都描述了一個在我們的環(huán)境中不斷出現的問題,然后描述了該問題的解決方案的。MVC的設計模式。用來開發(fā)JSP/Servlet或者J2EE的相關應用。簡單工廠模式等。2、UML答:標準建模語言UML。用例圖,靜態(tài)圖(包括類圖、對象圖和包圖),行為圖,交互圖(順序圖,合作圖),實JavaScriptvarvarstr= varr=str.match(re);if{}}CORBA答:CORBA標準是公共對象請求 結構(CommonObjectRequestBrokerArchitecture),由對象管理組織(ObjectManagementGroup,縮寫為OMG)標準化。它的組成是接口定義語言(IDL),語言綁定(binding:也譯為聯編)和允許應用程序間互操作的協(xié)議。其目的為:LINUX答:LINUX實現的就是基于 1、簡述你對DAO答:DAO是DATAACCESSOBJECT的簡寫,中文譯為數據對象,主要負責將數據保存到數據源BO透明的BO與數據源之間的耦合,使BO更專著于業(yè)務邏輯的控制,我們通常說的DAO模式,實質上指的是DAO的工廠策略。businessobject業(yè)務對象主要作用是把業(yè)務邏輯封裝為一個對象。這個對象可以包括一個或多個其它POPOPO。建立一個對應簡歷的BO對象處理簡歷,每個BO包含這些PO。數據庫之間的,而建立一個數據庫對于數據庫以及服務器是十分消耗資源的,往往成為系統(tǒng)的瓶頸。由此能不能把產生的保留一段時間(保留期間放入一個特定緩沖區(qū)就是“池中”),如果有別的需要就重新拿出使用,而不需要開啟新的。這就是數據庫連接池的基本原理。注意不僅在j2ee中有連接池,在其他系統(tǒng)開發(fā)框架如.net、數據庫連接池優(yōu)缺點。最的有點就是資源提高效率,大型系統(tǒng)中據說采用連池后性能提高難以置。而且omt項目由5.0到5.5到6.0的主要提高之一就是據庫連接池性能升!還有以往數庫 如果間太長容易生據溢出,使用連池可以控制 時間自動收。 。(其實tomcat一jax基本上就是把JavaScript技術和對象放在Web表單和服務器之間。當用戶填寫表單時,數據發(fā)送給一些JavaScript代碼而不是直接發(fā)送給服務器。相反,JavaScript代碼捕獲表單數據并向服務器發(fā)送請求。同時用戶屏幕上的表單也不會閃爍、或延遲。換句話說,JavaScript代碼在幕后發(fā)送請求,用戶甚至不知道請求的發(fā)JavaScript代碼(和用戶)不用等待服務器的響應。因此AJAX的全稱是AsynchronousJavaScriptAndAJAX是2005年由 發(fā)起并流行起來的編程方法,AJAX不是一個新的編程語言,但是它是一使用AJAX可以創(chuàng)建更好,更快,更用戶界面友好的WebAJAX技術基于JavascriptHTTPRequest.5、Struts2工作機制?優(yōu)缺點在web應用啟動時就會加載初始化ActionServlet,ActionServlet從struts-config.xml文件中配置信息,把它們存放到各種配置對象當ActionServlet接收到一個客戶請求時,將執(zhí)行如程.-(1)檢索和用戶請求匹配的 -(2)如果ActionForm實例不存在,就創(chuàng)建一個ActionForm對象,-(3)根據配置信息決定是否需要表單驗證.如果需要驗證,就調用ActionFormvalidate()方法-(4)如果ActionFormvalidate()null或返回一個不包含ActionMessage的ActuibErrors對-(5)ActionServlet根據ActionMap 所包含的映射信息決定將請求轉發(fā)給哪個Action,如果相應的Action實例不存在,就先創(chuàng)建這個實例,然后調用Action的execute()方法;-(6)Action的execute()方法返回一個ActionForward對象,ActionServletActionForward對象指向的JSP組件-(7)ActionForward對象指向JSP組件生成 Struts優(yōu)點:實現有豐富的tag可以用Struts的標記庫(Taglib),如能靈活動用,則能大大提高開發(fā)效率。另外,就目前國內的JSP開發(fā)者而言,除了使用JSP自帶的常用標記外,很少開發(fā)自己的標記,或許Struts是 提供Exception數據 池治支持缺點1、轉到展示層時,需要配置forward,每一次轉到展示層,相信大多數都是直接轉到jsp,而涉及到轉向,需要配置forward,假 十個展示層的jsp,需要配置十次struts,而且還不包括有時候目錄、文件變更,需要重新修改forward,注重,每次修改配置之后,要求重新部署整個項目,而tomcate這樣的服務器,還必須重新啟動服務器,如果業(yè)務變更復雜頻繁的系統(tǒng),這樣的操作簡單不 2、Struts的Action必需是thread-safe方式,它僅僅答應一個實例去處理所有的哀求。所以3、測試不方便Struts的每個Action都同Web層耦合在一起,這樣它的測試依靠于Web容器,單元測試也很難實現。不過有一個Junit的擴展工具StrutsTestCase可以實現它的單元測試。4、類型的轉換.Struts的FormBean把所有的數據都作為String類型,它可以使用工具Commons-Beanutils進行類型轉化。但它的轉化都是在Class級別,而且轉化的類型是不可配置的。類型轉化時 5、對Servlet的依賴性過強Struts處理Action時必需要依賴ServletRequest和ServletResponse,所有它掙脫不了Servlet容器。6、前端表達式語言方面.Struts集成了JSTL,所以它主要使用JSTLJSTL的表達式語言在Collection7、對Action執(zhí)行的控制 .Struts創(chuàng)建一個Action,如果想控制它的執(zhí)行順序將會非常 你要重新去寫Servlet來實現你的這個功能需求。8、對Action執(zhí)行前和后的處理Struts處理Action的時候是基于class的hierarchies,很難在 支持不夠.在struts中,實際是一個表單Form對應一個Action類(或DispatchAction),換一句話說:在Struts中實際是一個表單只能對應一個 ,struts這種 方式稱為applicationevent,applicationevent和componentevent相比是一種粗粒度的 并解析映射信息,創(chuàng)建優(yōu)點HibernateJavaHibernate的性能非常好,因為它是個輕量級框架。映射的靈活性 缺點:它限制您所使用的對象模型。(例如,一個持久性類不能映射到多個表)其獨有的界面和的市場份額也讓人不安,盡管如此,Hibernate還是以其強盛的發(fā)展動力減輕了這些風險。其他的開源持久性框架也有一些,不過都沒有Hibernate這樣有市場沖擊力。7、HQL和SQLsql是關系數據庫查詢語言,面對的數據庫;而hqlHibernate這樣的數據庫持久化框架提供的內置查從數據庫查詢需要的數據,但sql操作的是數據庫表和字段,而作為面向對象的hql操作的則是持久化類sqlhql8 9、AOP和IOC的概念以及在springSpring中AOP的實現就是通過動態(tài) 的實現在上篇blog中已經涉及。Spring中目前最為實用的AOP應用,非用其實現的事務管理機制莫屬。也正是這一點,使得SpringAOP大方異彩。那么我們繼續(xù)圍繞上節(jié)的例子來探討一下Spring中AOP機制的應用與開發(fā)。首先,看看AOP中幾個基本的概念對應在AOP中的實現:? 理方式(Advice)將在何時被觸發(fā)。對于我們開發(fā)而言,“何時觸發(fā)”的條件大多是面向Bean的方法進行制定。像Spring的配置化事務管理時針對方法名稱可進行PointCut設置,從而指定對所有以字符開頭的方法進行基于AOP的事務管理。那么同樣,對于我們自己實現的AOP組件而言,我get()andsession.get(Clazz,session.load(Clazz,說明load()與get()exception)。如果類的映射使用了(),load()方返回一個未初始化的,直到你調用該的某方法時才會去數據庫。若你希望在某對象中創(chuàng)建一個指向另一個對象的關聯,又不想在從數據庫中裝載該對象時同時裝載相關聯的那個對象,那么這種操作方式就用得上的了。如果為相應類映射關系設置了batch-size(因為返回的是,無需從數據庫中抓取所有對象的數據)。如果你不確定是否有匹配的行存在,應該使用get()方法,它會立刻 行,會返回null。11struts2在Action-validation.xml<fieldname=<field-validatortype=</field-消息資源文件是一些簡單的.properties文件,這些文件包含有可以被struts項目使用的消息信息,消息資源文件可以以<message-resource/>的形式添加到struts-config.xml文件,例如<message-resourceparameter=MessageResource/>手動 publicclassmyFormextends publicActionErrors input? publicclassmyFormextends //publicvoid ? 在struts-config.xml <plug-in <set-propertyproperty=”pathnames”value=”/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml”/> validation.xml?errors.required={0}is?errors.minlength={0}cannotbelessthan{1}? <form <fieldproperty=”userName” <arg0key=”userName” <fieldproperty=”pwd” <arg0key=”pwd” <arg1key=”${var:minlength}” ??struts-config.xml中修改action 實現過程在實現過程在struts-config.xmlstruts中加入適應不同語言、國家的propertiesnative2ascii-encodinggb2312源 在jsp<bean:messagekey=””/>取出信息所有的表與類都映射在一起,它們通過配置文件中的many-to-one、one-to-many、many-to-manyJava30道編程題,掌握了就可以應付中級以內JavapublicclassSearchTest/**被搜索數據的大小privatestaticfinalintsize publicstaticvoidmain(String[]args)long[]data=newfor(intk=0;k<data.length;k++)data[k]=}longtarget }*@param@param@return返回找到的數據的位置,返回-1publicstaticintbinaryFind(long[]data,longtarget)intstart=intend=data.length–while(start<=end)intmiddleIndex=(start+end)/if(target==data[middleIndex])return}if(target>=data[middleIndex])start=middleIndex+}elseend=middleIndex–}}return-}@param@parampublicstaticvoidbinaryFindTest(long[]data,longtarget)longstart=intresult=binaryFind(data,longend=System.out.println(“binarysearchposition:”+result);System.out.println(“bi

溫馨提示

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

評論

0/150

提交評論