




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
20192019JAVA最新面試題(完整詳細(xì)版2、Java有沒有&還可以用作位運算符,當(dāng)&操作符兩邊的表達(dá)式不是類型時,&表示按位與4、在JAVA中如何跳出當(dāng)前的多重嵌套循環(huán)句,即可跳出外層循6、shorts11s1s11;有什么錯shorts11s1對于shorts1=1;s1=s1+1;由于對于shorts1=1;s1=s1+1;由于s1+1運算時會自動提升表對于shorts11s11java語言規(guī)定的運算符,7、char型變量中能不能存貯一個中文漢字8、用最有效率的方法算出2乘以8等於幾2<<11、"=="和equals方法究竟有什么存,例如Objetobj=newObject();變量obj是一個內(nèi)存,new進(jìn)行比較方法是用于比較兩個獨立對象的內(nèi)容是否相同,就好比去比較個人的長相是否相同,它比較的兩個對象是獨立的。例,對于StringStringa=newString("foo");Stringb=new兩條ew語句創(chuàng)建了兩個對象,然后用a/b這兩個變量分別指向了其中一個對象,這是兩個不同的對象,它們的首地址是不同的,即a和b中存儲的數(shù)值是不相同的,所以,表達(dá)式a==b回false,而這兩個對象中的內(nèi)容是相同的,所以,表達(dá)式a.equals(b)將返回tru。12、靜態(tài)變量和實例變量的13、是否可以從一個static方法內(nèi)部發(fā)出對非static方法用14、Integer與int的區(qū)15、Math.round(11.5)等於多少?Math.round(-11.5)等於多16、下面的代碼有什么不妥intx=這四個作用域的可見范圍如下表說明:如果在修飾的元素上面沒有寫任何訪問修飾符friendly作用當(dāng)前類同一package子孫其他√√√√protected ××√√√×protected ××√√√×√×××在覆蓋要注意以下的2、覆蓋的方法的返回值必須和被覆蓋的方法的返回一致在使用重載要注意以下的幾2、不能通過訪問權(quán)限、返回類型、拋出的異常進(jìn)行重載3、方法的異常類型和數(shù)目不會對重載造成影響如果幾個Overloaded的方法的參數(shù)列表不一樣,它們的返回者1919、構(gòu)造器Constructor是否可被口?抽象類是否可繼承具體類(concreteclass)?抽象類中是否可21、寫clone()方法時,通常都有一行代碼,是什么clone缺省行為,super.clone();因為首先要把父類中的成員22、面向?qū)ο蟮奶卣饔心男┟嫦驅(qū)ο蟮木幊陶Z言有4個主要的特23、java中實現(xiàn)多態(tài)的機(jī)制是什么24、abstractclass和interface有什么區(qū)別實例對象。含有abstract方法的類必須定義為abstractclass,abstractclass類中的方法不必是抽象的。abstractclass類中定方法都必須是抽象的。接口中的方法定義默認(rèn)為publicabstract類型,接口中的成員變量類型默認(rèn)為publicstaticfinal。下面比較一下兩者的語法區(qū)抽象類中的抽象方法的訪問類型可以是public,protected的抽象方法只能是public類型的,并且默認(rèn)即為publicabstractstaticfinal類型,并且默認(rèn)即為publicstaticfinal類型。一個類可以實現(xiàn)多個接口,但只能繼承一個抽象類25、abstract的method是否可同時是static,是否可同時native,是否可同時是26、什么是內(nèi)部類?StaticNestedClass和InnerClass的不StaticNestedClass,它不再具有內(nèi)部類的特性,所有,從狹義上講,它不是內(nèi)部類。StaticNestedClass與普通類在運行時的面引用StaticNestedClass類的名稱為“外部類名.內(nèi)部類StaticNestedClass,例如,假設(shè)Inner是定義在Outer類中的StaticNestedClass,那么可以使用如下語句創(chuàng)建Inner類:Outer.Innerinner=newOuter.Inner();由于staticNestedClass不依賴于外部類的實例對象,所以,staticNestedClass能訪問外部類的非static成員變量。當(dāng)在外部類中訪問部類中訪問StaticNestedClass時,可以直接使用StaticNestedClass的名字,而不需要加上外部類的名字了,在StaticNestedClass中也可以直接引用外部類的static的成員變量,不在靜態(tài)方法中定義的內(nèi)部類也是StaticNestedClass,這時候不能在類前面加static關(guān)鍵字,靜態(tài)方法中的StaticNestedClass28、AnonymousInnerClass匿名內(nèi)部類)是否可以現(xiàn))interface(接口下面程序的輸出結(jié)果是多少publicclassTestextendspublicstaticvoidmain(String[]{new}public}結(jié)果是Test。在test方法中,直接調(diào)用getClass().getName(30、String是最基本的數(shù)據(jù)類基本數(shù)據(jù)類型包括byte、int、char、long、float、doubleboolean和short31、Strings"Hello";ssworld!";這兩行代碼執(zhí)行后,對象,內(nèi)容是"Hello",然后我們對s進(jìn)行了+操作,那么s所指原來那個對象了,而指向了另一個String對象,內(nèi)容為"Hello33、StringsnewString("xyz");創(chuàng)建了幾個String二者之間有什么區(qū)別個。NewString每寫一遍,就創(chuàng)建一個新的對象,它一句那個34、String和StringBuffer的區(qū)StringBuffersbf=newStringBuffer();for(inti=0;i<100;i++){}Stringstr=newString();for(inti=0;i<100;i++){str=str+}35、如何把一段逗號分割的字符串轉(zhuǎn)換成一個數(shù)如果不查jdkapi,我很難寫出來!我可以說說我的思路:1用正則表達(dá)式,代碼大概為:String[]result=2StingTokenizer:StringTokenizertokenerString[]result=newString[tokener.countTokens()];Inti=0;String[]result=newString[tokener.countTokens()];Inti=0;36、數(shù)組有沒有l(wèi)ength()這個方法String有沒有l(wèi)ength()這個數(shù)組沒有l(wèi)ength()這個方法,有l(wèi)ength的屬性。String有l(wèi)ength()這個方Strings1="a";Strings2=s1+"b";Strings3a"System.out.println(s2=="ab");System.out.println(s3==Strings="a"+"b"+"c"+"d";System.out.println(s=="abcd");最終打印的結(jié)果應(yīng)該為true38、try{}里有一個return語句,那么緊跟在這個try后的結(jié)論:finally中的代碼比return和break語句后40、final,finally,finalizefinal于聲final于聲明屬性,方法和類,分別表示屬性不可變,方法不內(nèi)部類要訪問局部變量,局部變量必須定義成final類finally是異常處理語句結(jié)構(gòu)的一部分,表示總是執(zhí)41、運行時異常與一般異常有何異同42、error和exception有什么區(qū)別error示恢復(fù)不是不可能但很困難的情況下的一種嚴(yán)重問題。43、Java中的異常處理機(jī)制的簡單原理和應(yīng)用導(dǎo)致的問題,是用戶能夠克服的問題,例如,網(wǎng)絡(luò)斷線,硬盤間不夠,發(fā)生這樣的異常后,程序不應(yīng)該死掉為系統(tǒng)異常和普通異常提供了不同的解決方案,編譯器強(qiáng)制普44、請寫出你最常見到的5個runtimeexception在jdkdoc中查RuntimeException類,就可以看到其所有的子46、java中有幾種方法可以實現(xiàn)一個線程?用什么關(guān)鍵字步方法stop()和suspend()方法為何不推薦使用java5以前,有如下兩newThread(){}.start();這表示調(diào)用Thread子類對象的run方法,newThread(){}表示一個Thread的匿名子類的實例對象,子類Thread(){publicvoidrun(){}newThread(newRunnable(){}).start();這表示調(diào)用Thread對接受的Runnable對象的接受的Runnable對象的run方法,newRunnable(){}表示一個newThread(newpublic}}ExecutorServicepoolExecutors.newFixedThreadPool(3)for(inti=0;i<10;i++){pool.execute(newRunable(){publicvoid}Executors.newCachedThreadPool().execute(new{publicvoidrun(){}});Runable(){publicvoidrun(){}});有兩種實現(xiàn)方法,分別使用newThread()和new以,我們往往使用Thread子類,即newSubThread()。第二種反對使用(),是因為它不安全。它會解除由線程獲取的所有鎖定,而且如果對象處于一種不連貫狀態(tài),那么其他線程能在那47、sleep()和wait()有什然保持,到時后會自動恢復(fù)。調(diào)用sleep不會釋放對象鎖。wait鎖,進(jìn)入等待此對象的等待鎖定池,只有針對此對象發(fā)出notify49.下面兩個方法同步嗎?(自己發(fā)明class{synchronizedstatic{}synchronizedvoid}50}synchronizedvoid}50、多線程有幾種實現(xiàn)方法?同步有幾種實現(xiàn)51、啟動一個線程是用run()還是start()?分幾種如果其他方法是static碼,與非碼,與非靜態(tài)的方法不能同步,因為非靜態(tài)的方法用的是this53、線程的基本概念、線程的基本狀態(tài)以及狀態(tài)之間的暫,所以,大家感覺都在同時上網(wǎng)緒狀態(tài)的線程轉(zhuǎn)為運行狀態(tài),遇到synchronized語句時,由運主要相同點:Lock能完成synchronized所實現(xiàn)的所有循環(huán)10次,接著再回到主線程又循環(huán)100,如此循環(huán)50次,請57、介紹57、介紹Collection框架的結(jié)59、ArrayList和Vector接著才說ArrayList與Vector的區(qū)別,這主要包括兩個方面(1)備注:對于Vector&ArrayList、Hashtable&HashMap,要記住線程安全的問題,記住Vector與Hashtable是舊的,是java一(2)60、HashMap和Hashtable的區(qū)Mapinterface的一個實現(xiàn)。就HashMap與HashTable主要從三方面一.歷史原因:Hashtable是基于陳舊的Dictionary類HashMap是Java1.2引進(jìn)的Map接口的一個實二.同步二.同步性:Hashtable是線程安全的,也就是說是同步的HashMap是線程序不安全的,不是同61、List和Map區(qū)別一個是存儲單列數(shù)據(jù)的集合,另一個是存儲鍵和值這樣的雙列數(shù)據(jù)的集合,t中存儲的數(shù)據(jù)是有順序,并且允許重復(fù);p中存儲的數(shù)據(jù)是沒有順序的,其鍵是不能重復(fù)的,它的值是可以有62、List,Set,Map是否繼承自Collection接口List,Set是,Map不同)的對List表示有先后順序的集合,注意,不是那種按年齡、按小、按價格之類的排序。當(dāng)我們多次調(diào)用add(Obje)方法時,每序排序。有時候,也可以插隊,即調(diào)用add(intindex,Obje)方還可以調(diào)用get(indexi)來明確說明取第幾個。Map與List和Set不同,它是雙列的集合,其中有put方法,義如下:put(objkey,objvalue),每次存儲時,要存儲一對key/相等。取則可以根據(jù)key獲得相應(yīng)的value,即get(Objectkey)的結(jié)合,還可的結(jié)合,還可以獲得所有的value的結(jié)合,還可以獲得keyvalue組合成的Map.Entry對象的List特定次序來持有元素,可有重復(fù)元素。Set無法擁有重復(fù)接按hashCode值的大小進(jìn)行存儲。例如,"abc">78,"def">62,"xyz">65在hashSet中的存儲順序不是同一個對象可以在r中加入多次。往集合里面加元素,相當(dāng)于集合里用一根繩子連接到了目標(biāo)對象。往t中卻加不了64、說出ArrayList,Vector,LinkedList的存儲性能和特性VectornewVector=newVector();For(inti=0;i<vector.size();i++){Objectobj=vector.get(i);}還有一種簡單的方式,HashSetsetnew66、CollectionCollections的區(qū)別68、你所知道的集合類都有哪些?主要方法最常用的集合類是ListMap。List的具體實現(xiàn)包括ArrayList和Vector,它們是可變大小的列表,比較適合構(gòu)建、存儲和操作任何類型對象的元素列表。List適用于按數(shù)值索引訪問元素的Map供了一個更通用的元素存儲方法。Map集合類用于存儲概的方法是add,remove,contains;對于map,大概的方法就類會有g(shù)et(intindex)這樣的方法,因為它可以按順序取元素,而set類中沒有g(shù)et(intindex)這樣的方法。List和set都可以迭代69、兩個對象值相同(x.equals(ytrue),但卻可有不同的hashcode,這句話對不對?7171、說出一些常用的類,包,接口,請各舉5要讓人家感覺你對javaee開發(fā)很熟,所以,不能僅僅只列core常用的類:BufferedReaderBufferedWriterFileReaderFileWirterStringIntegerjava.util.Date,System,Class,常用的包;java.langjava.iojava.util常用的接口:RemoteListMapDocument字節(jié)流,字符流。字節(jié)流繼承于InputStreamOutputStream,73、字節(jié)流與字符流的區(qū)底層設(shè)備永遠(yuǎn)只接受字節(jié)數(shù)據(jù),有時候要寫字符串到我們有時候?qū)⒁粋€a對象變成字節(jié)流的形式傳出去或者從一個字節(jié)流中恢復(fù)成一個ava對象,例如,要將ava對象存儲到硬盤或者傳送給網(wǎng)絡(luò)上的其他計算機(jī),這個過程我們可以自己寫代碼去把一個a對象變成某個格式的字節(jié)流再傳輸,但是,r就提供了這種支持,我們可以調(diào)用OutputStrm的writebt方法來做,如果要讓a幫我們做,要被傳輸?shù)膶ο蟊仨殞崿F(xiàn)serializabl接口,這樣,ava編譯時就會進(jìn)行特殊處理,編譯的類才可以被writebjt方法操作,這就是所謂的序列化。需要被序列化的類必須實現(xiàn)azable接口,該接口是一個mini接口,其中沒有需要實現(xiàn)的方法,mtriab開發(fā)中,如果對象被保存在了esion中,tom在重啟時要把Sn對象序列化到硬盤,這個對象就必須實現(xiàn)raabi等遠(yuǎn)程調(diào)用,這就需要在網(wǎng)絡(luò)上傳輸對象,被傳輸?shù)膶ο缶捅仨殞崿F(xiàn)Serializable接口75、描述一下JVM加載class文件的原理機(jī)制76、heap和stack有什么間,用于存儲這個方法內(nèi)部的局部變量,當(dāng)這個方法結(jié)束時,配給這個方法的棧會配給這個方法的棧會釋放,這個棧中的變量也將隨之77、GC是什么?為什么要有是垃圾收集的意思(GabageCollection),內(nèi)存處理是編程人員78、垃圾回收的優(yōu)點和原理。并考慮2種回收機(jī)制語言中一個顯著的特點就是引入了垃圾回收機(jī)制,使c++程序?qū)τ贑來說,當(dāng)程序員創(chuàng)建對象時,C就開始監(jiān)控這個對象的地址、大小以及使用情況。通常,C采用有向圖的方式記錄和管理堆(a)中的所有對象。通過這種方式確定哪些對象是"可GC一定會執(zhí)行GC一定會執(zhí)行80、什么時候用assert說,assertion用于保證程序最基本、關(guān)鍵的正確性。assertion81、java中會存在內(nèi)存泄漏嗎,請簡單描述82、能不能自己寫個類,也叫例如,運行下面的程packagepublicclasspublicclassStringpublicstaticvoidmain(String[]args)//TODOAuto-generatedmethodstub}}Exceptioninthread"main"abstractclass{privateStringpublicabstractbooleanisStupidName(Stringname)}大俠們,這有何錯答案。abstractmethod必須以分號結(jié)尾,且不帶花括號。publicclass{voiddoSomething{privateStrings="";intl=s.length();}}答案。局部變量前不能放置任何訪問修飾符(private,abstractclassSomethingprivateabstractStringdoSomething}這好像沒什么答案:錯。abstract的methods不能以private修飾。abstract的method封鎖起來呢?(同理,abstractmethod前不能加final)。publicclassSomething{publicintaddOne(finalint{return}}這個比較明顯答案:錯。intx被修飾成final,意味著x不能在addOne中被修publicclassSomethingpublicstaticvoidmain(String[]{Othero=newOther();}publicvoidaddOne(finalOther{}}class{publicint}和上面的很相似,都是關(guān)于final的問題,這有錯嗎答案:正確。在addOnemethod中,參數(shù)o被修飾成final。如在addOnemethod在addOnemethod里我們修改了o的(比如onewOther();),那么如同上例這題也是錯的。但這修改的是o的class{intpublicvoid{System.out.println("i="+}}有什么錯呢?看不出答案:正確。輸出的是"i=0"。inti屬於instantvariable(實例變量,或叫成員變量)。instantvariable有的defaultvalue是0。class{finalintpublicvoid{System.out.println("i="+}}答案:錯。finalinti是個final的instantvariable(實例變量,或叫成員變量)。final的instantvariable沒有defaultvalue,必須在constructor(構(gòu)造器)結(jié)束之前被賦予一個明確的值??梢孕薷臑?finalinti=0;"。publicclassSomethingpublicstaticvoidmain(String[]{Somethings=newSomething();System.out.println("s.doSomething()returns"+}publicString{return"Dosomething}}看上去很完美答案:錯。看上去在main里calldoSomething沒有什么問題,static的。staticmethod不能直接callnon-staticmethods??筛某?System.out.println("s.doSomething()returns"+s.doSomething());"。同理,staticmethod不能訪問non-staticinstantvariable。classSomething{privatestaticvoidsomething_to_do){}}這個好像很明答案確。從來沒有人說過Java的Class名字必須和其文件名相同。但publicclass的名字必須和文件名相同。eA{intx=}B{int}classCextendsBimplements{publicpX(){}public}publicstaticvoidmain(String[]{new}}publicstaticfinal.所以可以通過A.x來明確。{void}{void}interfaceRollableextendsPlayable,{Ballball=new}classBallimplements{privateStringname;publicStringgetName(){return}publicBall(String{}publicvoidplay()ball=newBall("Football");}}這個錯誤不這個錯誤不容易發(fā)現(xiàn)答案:錯。"interfaceRollableextendsPlayable,這里沒錯。問題出在interfaceRollable里的"Ballball=newvariable(接口變量,也可稱成員變量),默認(rèn)為publicstaticfinal。也就是說"Ballball=newBall("PingPang");"實際上是"publicstaticfinalBallball=newBall("PingPang");"。在Ball類的Play()方法中,"ball=newBall("Football");"改變了ball的reference,而這里的ball來自Rollableinterface,Rollableinterface里的ball是publicstaticfinal的,final的object是不能被改變reference的。因此編譯器將在"ball=四web部1、Tomcat的優(yōu)2、HTTP請求的GET與POST方式的時候調(diào)用其的時候調(diào)用其destroy方法容器加載servlet,生命周期開始。通過調(diào)用servlet的init()方不同調(diào)用不同的do***()方法。結(jié)束服務(wù),web容器調(diào)用servlet5、Servlet的基繼承HttpServlet,并實現(xiàn)dogetdopost()方法。6、SERVLETAPI中forward()與redirect()的區(qū)別?forward(sendRedirect()方法7、什么情況下調(diào)用doGet()和8、Request對象的主要方法setAttribute(Stringname,Object):設(shè)置名字為name的getAttribute(Stringname):返回由name指定的屬性值getHeader(Stringname):獲得HTTP協(xié)議定義的文件頭信息getParameter(Stringname):獲得客戶端傳送給服務(wù)器端的有g(shù)etSession([Booleancreate]):返回和請求相關(guān)SessiongetSession([Booleancreate]):返回和請求相關(guān)SessionremoveAttribute(Stringname):刪除請求中的一個屬性9、forward和redirect的地址欄中還是原來的地址就是服務(wù)端根據(jù)邏輯,發(fā)送一個狀態(tài)碼,告訴瀏覽器重新去請求個地址,一般來說瀏覽器會用剛才請求的所有參數(shù)重新請求,以session,request參數(shù)都可以獲取10request.getAttribute()和request.getParameter()有何區(qū)別11jsp有哪些內(nèi)置對象?作用分別是什么?分別有什么方法?求的信息,并且提供了幾個用于獲取cookie,header,和數(shù)據(jù)的有用的方法表示HttpServletResponse對象,并提供了幾個用于設(shè)置送回覽器的響應(yīng)的方法(如cookies,頭信息等out對象javax.jsp.JspWriter的一個實例,并提供了幾個方法使你能用向瀏覽器回送輸出結(jié)果pageContext表示一javax.servlet.jsp.PageContext對象。是用于方便存取各種范圍的名字空間、servlet相關(guān)的對象的API,并且包裝了通用的servlet相關(guān)功能的方法session表示一個請求javax.servlet.http.HttpSession象。Session可以存貯用戶的狀態(tài)信applicaton示一個javax.servle.ServletContext對象。這有page表示從該頁面產(chǎn)生的一個servlet實exception針對錯誤網(wǎng)頁,未捕捉的例12.jspjsp:include:在頁面被請求的時候引入一個jsp:plugin:根據(jù)瀏覽器類型為Java插件生成OBJECT或標(biāo)13、JSP的常用14.JSP中動態(tài)INCLUDE與靜態(tài)INCLUDE的區(qū)別?<jsp:includepage=included.jspflush=true/>它總是會檢查用于包含靜態(tài)頁面<%@includefile=included.htm%>15、兩種跳轉(zhuǎn)方式分別是什么?有什答:有兩種,分別為<jsp:includepage=included.jsp<jsp:forwardpage=to語句。16、頁面間對象傳遞的方法cookie17、JSP和Servlet有哪些相同點和同點,他們之間的聯(lián)系是什么JSP是ervlet技術(shù)的擴(kuò)展,本質(zhì)上是StPservletSt和JSP最主要的不同點在于,rvle的應(yīng)用邏輯是在Java文件中,并且完全從表示層中的HL里分離開來。而JP的情況是Java和LpPrt18、MVC的各個部分都有那些技術(shù)來實現(xiàn)?如何實現(xiàn)答:MVC是el-iw-Controlr的簡寫。l代表的是應(yīng)用的業(yè)務(wù)邏輯(通過JavaBn,EJB組件實現(xiàn)),iw是應(yīng)用的表示面(由JP頁面產(chǎn)生),Controlr是提供應(yīng)用的處理過程控制(一般是一個St),互和重用。PublicStringtranslate(String{StringtempStrtrytempStrtrytempStr=newString(str.getBytes("ISO-8859-1"),tempStr}catch(Exception{}return}3、存儲過程與觸發(fā)器必須講,經(jīng)常被面試4、數(shù)據(jù)庫三范式是第三范式的要求如下所以第三范式具有如下特征1,每一列只有2,每一行都能區(qū)分3,每一個表都不包含其他表已經(jīng)包含的非主關(guān)息5、說出一些數(shù)據(jù)庫優(yōu)化方面用PreparedStatement一般來說比Statement1.,e.salarywheree.managerid=(selectidfromemployeewherename='zxx');select,e.salary,,m.salarye,employeesme.managerid=m.id表中允許適當(dāng)冗余,譬如,主題帖的回復(fù)數(shù)量和最后回復(fù)時間還有索引對查詢性能的改進(jìn)也是值得關(guān)21、注冊Jdbc驅(qū)動程序的三種方packageimportjava.sql.CallableStatement;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.SQLException;importjava.sql.Types;publicclassJdbcTestpublicstaticvoidmain(String[]args)//TODOAuto-generatedmethodstubConnectioncn=null;CallableStatementcstmt=null;try//實際項目中,這里應(yīng)用DataSource數(shù)據(jù),如果用架Datasourceds=context.lookup()//cn=cn=DriverManager.getConnection("jdbc:mysql:///cstmt=}catch(Exceptione)//TODOAuto-generatedcatchblock}{try{if(cstmt!=null)if(cn!=null)}catch(SQLExceptione)//TODOAuto-generatedcatchblock}}}23、JDBC中的PreparedStatement相比Statement的好select*fromstudentwhereid 緩存--àxxxxx二進(jìn)令select*fromstudentwhereid 直接取-àxxxxx二進(jìn)命select*fromselect*fromstudentwhereid à會怎么如果當(dāng)初是select*fromstudentwhereid à又會怎干24.寫一個用jdbc連接并訪問oracle數(shù)據(jù)的程序代25、Class.forName的作用?為什么要用26、大數(shù)據(jù)量下的分頁解決方法據(jù)sqlStringsql"selecttop"+pageSize+"*fromstudentswhereidnotin"+"(selecttop"+pageSize*(pageNumber-1)+"idstudentsorderbystudentsorderbyid)""orderbyStringsql"select*fromstudentsorderbyidlimit"+pageSize*(pageNumber-1)+","+pageSize;Stringsql="select*from"+(select*,rownumridfrom(select*fromstudentsorderbypostimedesc)whererid<="+pagesize*pagenumber+")ast"+"wheret>"+pageSize*(pageNumber-27JDBC查詢學(xué)生成績單,把主要代碼寫出來(考試概率極Connectioncn=null;PreparedStatementpstmt=null;Resultsetrs=null;{cn=pstmt=cn.prepareStatement(“selectscore.*fromscore,student“+“wherescore.stuId=student.idand=?”);ResultsetrsResultsetrs=pstmt.executeQuery();{system.out.println(rs.getInt(“subject”)“”+rs.getFloat(“score”)}}catch(Exceptione){e.printStackTrace();}{if(rs!=null)try{rs.close()}catch(exceptione){}if(pstmt!=null)try{pstmt.close()}catch(exceptione){}if(cn!=null)try{cn.close()}catch(exceptione){}}try{Connectionconn=...;Statementstmt=...;ResultSetrs=stmt.executeQuery("select*fromtable1");while(rs.next()){}}catch(Exceptionex)}29、說出數(shù)據(jù)連接池的工作機(jī)制是驅(qū)動程序就新建一定數(shù)量的連接,新建連接的數(shù)量有配置參數(shù)30、為什么要用ORMJDBC有何不一樣六XML部1、xml有哪些解析技術(shù)?區(qū)別是什么答:有DOM,SAX,STAXSTAX:StreamingAPIforXML2、你在項目中用到了xml技術(shù)的哪些方面?如何實答:用到了數(shù)據(jù)存貯,信息配置兩方面。在做數(shù)據(jù)交換平臺時將不能數(shù)據(jù)源的數(shù)據(jù)組裝成XML文件,然后將XML文件壓縮打包加密后通過網(wǎng)絡(luò)傳送給接收者,接收解密與解壓縮后再同將不能數(shù)據(jù)源的數(shù)據(jù)組裝成XML文件,然后將XML文件壓縮打包加密后通過網(wǎng)絡(luò)傳送給接收者,接收解密與解壓縮后再同文件中還原相關(guān)信息進(jìn)行處理。在做軟件配置時,利用XMXML文件中。、oml4、編程用JAVA解析XML的方式a:兩種形式dtdschema,b:本質(zhì)區(qū)別:schema本身是xml的,STAX:StreamingAPIforXML七.流行的框架與新技1、談?wù)勀銓truts的理答.struts是一個按C模式設(shè)計的Web層框架,其實它就是一個大大的servle,這個St名為Actioet,或是ActionSt的子類。我們可以在web.xml文件中將符合某種特征的所有請求交給這個lt處理,這個rvle再參照一個配置文件(通常為B-INF/str-nfig.xml)an去處理。呢?看配置文ActionServlet把formbean對象傳遞給action的析執(zhí)行完后要返回顯示的結(jié)果視圖,這個結(jié)果視圖是用ActionForwar對象來表示的,actionforward對象通過struts-xml配置文件中的配置關(guān)聯(lián)到某個p頁面,因為程序中使用的是在struts-.xml配置文件為jsp頁面設(shè)置的邏輯名,這樣可以實現(xiàn)an程序代碼與返回的頁面名稱的解耦。碼,而做的事情僅僅是保存對象和恢復(fù)碼,而做的事情僅僅是保存對象和恢復(fù)對象,并且那些大量jdbc代碼并沒有什么技術(shù)含量,基本上是采用一套例行公事的準(zhǔn)代碼模板來編寫,是一種苦活和重復(fù)性的工作是實現(xiàn)了java對象與關(guān)系數(shù)據(jù)庫記錄的映射關(guān)系,稱為ORM(即ObjectRelationMapping),人們可以通過封裝JDBC代碼來實現(xiàn)了這種功能,封裝出來的產(chǎn)品稱之為ORM框架,象保存到關(guān)系數(shù)據(jù)庫中,僅僅是調(diào)用一個get方法,就可以從據(jù)庫中加載出一個對象4.用Hibernate的基本流程是:配置Configuration對象、產(chǎn)hbm.xml文件3、AOP的作用注入:將相互依賴的對象分離,在spring配置文件中描述依賴關(guān)系。他們的依賴關(guān)系只在使用的時候才建立。簡單來說是不需要NEW一個對象了面向切面,是一種編程思想,OOP的延續(xù)。將系統(tǒng)中非核心的務(wù)提取出來,進(jìn)行單獨處理。比如事務(wù)、日志和安全。這個簡單來說就是可以在一段程序之前或者之后做一些事。Spring的題。使代碼重用度高、易于維護(hù)4、4、你對Spring的理解口),在程序中通常BeanFactory的子類ApplicationContext。Spring相當(dāng)于一個大的工廠類,在其配置文件中通過<bean>元也稱為DI(DepencyInjection),什么叫依賴注入呢?}<beanid=”computer”<beanid=”programmer”<propertyname=”computer”.rAAOP稱為面向切面編程,就是系統(tǒng)中有很多各不相干的類的方法,在這些眾多方法中要加入某種系統(tǒng)功能的代碼,例如,加入日志,加入權(quán)限判斷,加入異常處理,這種應(yīng)用稱為AOP。實現(xiàn)AOP功能采用的是代理技術(shù),客戶端程序不再調(diào)用目標(biāo),而調(diào)用代理類,代理類與目標(biāo)類對外具有相同的方法聲明,有兩種方式可以實現(xiàn)相同的方法聲明,一是實現(xiàn)相同的接口,二是作為目標(biāo)的子類在,JDK中采用Proxy類產(chǎn)生動態(tài)代理的方式為某個接口生成實現(xiàn)類,如果要為某個類生成子類,則可以用CGLIB<beanid=”proxy”<property<property5、談?wù)凷truts中的Actionservlet。優(yōu)點1.實現(xiàn)MVC模式,結(jié)構(gòu)清晰,使開發(fā)者只關(guān)注業(yè)務(wù)邏輯的實現(xiàn).2.有豐富的tag可以用,Struts的標(biāo)記庫(Taglib),如能靈活動提供Exception處理機(jī)制一轉(zhuǎn)到展示層時,需要配置forward,如果有十個展jsp,需要配置十次struts,而且還不包括有時候目錄、文件二二、Struts的Action必需是thread-safe方式,它僅僅三測試不方便.Struts的每個Action都同Web層耦合在過有一個Junit的擴(kuò)展工具StrutsTestCase可以實現(xiàn)它的單元測四類型的轉(zhuǎn)換.Struts的FormBean把所有的數(shù)據(jù)都作String類型,它可以使用工具Commons-Beanutils進(jìn)行類型轉(zhuǎn)五、對Servlet的依賴性過強(qiáng).Struts處理Action時必需要依賴ServletRequest和ServletResponse,所有它擺脫不了Servlet 七、對Action執(zhí)行的控制困難.Struts創(chuàng)建一個Action,如果想控制它的執(zhí)行順序?qū)浅@щy。甚至你要重新去寫Servlet 對Action執(zhí)行前和后的處理.Struts處理Action的時候是 applicationevent,applicationevent和componentevent相7、STRUTS的應(yīng)用(如STRUTSStruts是采用JavaServlet/JavaServerPages技術(shù),開發(fā)Web應(yīng)MVC(Model-View-Controller)設(shè)計模式的應(yīng)用構(gòu)架。Struts有如下的主要功能:一.包含一個controllerservlet,能將用戶的controllerservlet中提供關(guān)聯(lián)支持,幫助開發(fā)員創(chuàng)建交互式表單reflectionAPIs自動處理reflectionAPIs自動處理JavaBeans屬性、國際化的提示和消2struts1struts雖然基于這個框架,但是應(yīng)用群眾并多,相對不成熟,未知的風(fēng)險和變化很多,開發(fā)人員相對不好招,使用它開發(fā)項目的風(fēng)險系數(shù)更大,用人成本更高!.rus1中的一些缺陷,struts1中一些懸而未決問題在struts2得到了解決前端控制器是一個filter,在struts2.0FilterDispatcher,在struts2.1中叫StrutsPrepareAndExecuteFilter。例,struts2對同一個路徑的每個請求分別使用一個獨立Action與Struts1不同,Struts2對用戶的每一次請求都會創(chuàng)建一Action,所以Struts2中的Action是線程安全的數(shù)9、hibernate中的數(shù)9、hibernate中的update()和saveOrUpdate()的區(qū)別的load()和get()的區(qū)別10、簡HibernateJDBC的優(yōu)缺點?如何書寫一個oneto相同點:屏蔽jdbcapi的底層訪問細(xì)節(jié),使用我們不用與jdbcjdbcapi編程流程固定,還將sql語句與java代碼混雜在了一起,ibatis的好處:屏蔽jdbcapi的底層訪問細(xì)節(jié);將sql語句與java代碼進(jìn)行分離;提供了將結(jié)果集自動封裝稱為實體對象和對象的集合的功能,queryForList返回對象集合,用queryForObject時候用ibatis就是不錯的選擇,因為ibatis還是由我們自己寫sqlfield2),然后在hql里面就可以直接生成這個bean了13、在DAO中如何體現(xiàn)DAOfield2),然后在hql里面就可以直接生成這個bean了14、spring+Hibernate中委托方案怎么配置field2),然后在hql里面就可以直接生成這個bean了15、spring+Hibernate中委托方案怎么配置field2),然后在hql里面就可以直接生成這個bean了16hibernate進(jìn)行多表查詢每個表中各取幾個字段,也就是說field2),然后在hql里面就可以直接生成這個bean了17.介紹一下Hibernate的二級緩ibernate的esion就是一種緩存,我們通常將之稱為raese個對象時,esion也是先從自己內(nèi)部查看是否存在這個對象,存在則直接返回,不存在才去訪問數(shù)據(jù)庫,并將查詢的結(jié)果保存在自己內(nèi)部。由于esion代表一次會話過程,一個Snession最好不要長時間保持打開,通常僅用于一個事務(wù)當(dāng)中,在事務(wù)結(jié)束時就應(yīng)關(guān)閉。并且s值,因此,Hibernate的Session這一級緩存的緩存作用并不顯,應(yīng)用價值不大。Hibernate的二級緩存就是要為Hibernate存。我們希望的是一個人使用過,其他人也可以使用session18、Spring的依賴注入是什么意思?給一個Bean的屬性,字符串類型,注入值為"Hello"的XML配置文件該怎么寫19、Jdo是什么JDO是Java對象持久化的新的規(guī)范,為javadataobject的簡稱,不需要額外的代碼(如JDBCAPI的使用)。這些繁瑣的例行工20、什么是spring的IOCAOP22、spring與EJB的區(qū)別八.軟件工程與設(shè)計模1、UML方2、j2ee常用的設(shè)計模式?說明工廠總共23種,分為三大類:創(chuàng)建型,結(jié)構(gòu)型,行為我只記得其中常用的6、7種,分別是我只記得其中常用的6、7種,分別是行為(觀察者,模版,策略然后再針對你熟悉的模式談?wù)勀愕睦斫釨uilder(建造模式Method(工廠方法模式Adapter(適配器模式Bridge(橋梁模式Composite(合成模式 Command(命令模式Interpreter(解釋器模式Visitor(訪問者模式Iterator(迭代子模式),Mediator(調(diào)停者模式Memento(備忘錄模式(觀察者模式),State(狀態(tài)模式Strategy(策略模式TemplateMethod(模板方法模式),ChainOf3、開發(fā)中都用到了那些設(shè)計模式?用在什么場合每個模式都描述了一個在我們的環(huán)境中不斷出現(xiàn)的問題,然后MVC的設(shè)計模式。用來開發(fā)JSP/Servlet或者J2EE的相關(guān)應(yīng)用。九j2ee部1、BS與CS的聯(lián)系與區(qū)InFORMix或SQLServer??蛻舳诵枰惭b專用的客戶端軟件。(Browser),如NetscapeNavigator或InternetExplorer,服務(wù)器安裝Oracle、Sybase、InFORMix或SQLServer等數(shù)據(jù)覽器通過WebServer同數(shù)據(jù)庫進(jìn)行數(shù)據(jù)交互。C/S與B/S區(qū)別:1.硬件環(huán)境C/S般建立在專用的網(wǎng)絡(luò)上,小范圍里的網(wǎng)絡(luò)環(huán)境,局域網(wǎng)之間B/S建立在廣域網(wǎng)之上的,不必是專門的網(wǎng)絡(luò)硬件環(huán)境,例與電話2.對安全要C/S一般面向相對固定的用戶群,對信息安全的控制能力很強(qiáng).一B/S建立在廣域網(wǎng)之上,對安全的控制能力相對弱,可能面向不可3.對程序架C/S序可以更加注重流程,可以對權(quán)限多層次校驗,對系統(tǒng)運行B/S安全以及訪問速度的多重的考慮,建立在需要更加優(yōu)化的基礎(chǔ)之上.比C/S有更高的要B/S結(jié)構(gòu)的程序架構(gòu)是發(fā)展的趨勢,從MS的.Net系列的BizTalk2000Exchange2000等,MS的.Net系列的BizTalk2000Exchange2000等,全面
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 暖通工程中央空調(diào)系統(tǒng)運行與管理考核試卷
- 嬰兒家具批發(fā)考核試卷
- 獸用藥品的學(xué)術(shù)推廣與醫(yī)學(xué)教育考核試卷
- 機(jī)器視覺檢測在半導(dǎo)體品質(zhì)控制中的應(yīng)用考核試卷
- 敏感元件的表面修飾技術(shù)考核試卷
- 數(shù)字出版項目策劃與管理考核試卷
- 剪刀安全教育課件
- 變壓器絕緣檢測培訓(xùn)課件
- 買賣小產(chǎn)權(quán)合同范本
- 政府供電合同范本
- 高中主題班會 悟哪吒精神做英雄少年-下學(xué)期開學(xué)第一課主題班會課件-高中主題班會課件
- 起重機(jī)械質(zhì)量安全風(fēng)險管控清單(起重機(jī)械制造、安裝、修理、改造單位)
- 建筑工地三級安全教育卡
- ID5S606B 600V高低側(cè)柵極驅(qū)動芯片兼容PN7103-驪微電子
- 大學(xué)生人文知識競賽報名表
- 小升初閱讀理解專題課件
- 人教部編版九年級下冊歷史第四單元 經(jīng)濟(jì)大危機(jī)和第二次世界大戰(zhàn)單元測試題
- 個人理財實務(wù)教學(xué)課件
- (完整版)新版PEP小學(xué)英語五年級下冊教材分析
- 研發(fā)經(jīng)費填報指標(biāo)說明及核算方法
- 一年級思維訓(xùn)練(課堂PPT)
評論
0/150
提交評論