java高級工程師面試題及答案_第1頁
java高級工程師面試題及答案_第2頁
java高級工程師面試題及答案_第3頁
java高級工程師面試題及答案_第4頁
java高級工程師面試題及答案_第5頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

一:選擇題關于以下程序代碼的說明正確的是()1.D.1classHasStatic{.;2privatestaticintx=100.3publicstaticvoidmain(Stringargs[4.5.6.7.8.9.HasStatichs1=newHasStatic(hs1.x++;HasStatichs2=newHasStatic(hs2.x++;hs1=newHasStatic(hs1.x++;.10HasStatic.x--;.“”11(x=+x);.12}.13}、行不能通過編譯,因為引用了私有靜態(tài)變量A5、行不能通過編譯,因為是私有靜態(tài)變量B10、程序通過編譯,輸出結果為:、程序通過編譯,輸出結果為:下列關于循環(huán)和xx=103x=102循環(huán)的說法中哪個是正確的?()2.forwhileB.循環(huán)能實現的操作,循環(huán)也都能實現forAwhile.循環(huán)判斷條件一般是程序結果,循環(huán)判斷條件一般是非程序Bwhilefor結果兩種循環(huán)任何時候都可替換兩種循環(huán)結構中都必須有循環(huán)體,循環(huán)體不能為空D.以下選項中循環(huán)結構合法的是()3.C、Awhile(inti<7){i++;““(iis+i);}、Bintj=3;while(j){““(jis+j);}、Cintj=0;for(intk=0;j+k!=10;j++,k++){“““”(jis+j+kis+k);}、Dintj=0;do{““(jis+j++);if==3){continueloop;}}while(j<10);給出下面代碼段哪行將引起一個編譯時錯誤?()4.,D1)publicclassTest{2)intn=0;3)intm=0;4)publicTest(inta){m=a;}5)publicstaticvoidmain(Stringarg[]){6)Testt1,t2;7)intj,k;8)j=3;k=5;9)t1=newTest();10)t2=newTest(k);11)}行12)}9行A.1行行B.46D.下面的方法,當輸入為的時候返回值是多少()publicintgetValue(inti){5.2Dintresult=0;switch(i){case1:result=result+i;case2:result=result+i*2;case3:result=result+i*3;}returnresult;}A0B2C4D10二:簡述題1、描述一下加載文件的原理機制classJVM中類的裝載是由和它的子類來實現的是一,JavaClassLoaderJVMClassLoader個重要的運行時系統(tǒng)組件。它負責在運行時查找和裝入類文件的類。Java、和有什么區(qū)別。2heapstack的內存分為兩類,一類是棧內存,一類是堆內存。棧內存是指程序進入一java個方法時,會為這個方法單獨分配一塊私屬存儲空間,用于存儲這個方法內部的局部變量,當這個方法結束時,分配給這個方法的棧會釋放,這個棧中的變量也將隨之釋放。堆是與棧作用不同的內存,一般用于存放不放在當前方法棧中的那些數據,例如,使用創(chuàng)建的對象都放在堆里,所以,它不會隨new方法的結束而消失。方法中的局部變量使用修飾后,放在堆中,而不是final棧中。、是什么為什么要有3GCGC是垃圾收集的意思()內存處理是編程人員容易出現問題GabageCollection,GC的地方,忘記或者錯誤的內存回收會導致程序或系統(tǒng)的不穩(wěn)定甚至崩潰,Java提供的功能可以自動監(jiān)測對象是否超過作用域從而達到自動回收內存的目GC的,語言沒有提供釋放已分配內存的顯示操作方法。Java4、列舉出一些常用的類,包,接口,請各舉個5要讓人家感覺你對開發(fā)很熟,所以,不能僅僅只列中的那些corejavajavaee東西,要多列你在做項目中涉及的那些東西。就寫你最近寫的那些程序中ssh涉及的那些類。常用的類:BufferedReaderBufferedWriterFileReader,,,FileWirterStringIntegerjava.util.DateSystemClassList,HashMap常用的包:java.langjava.iojava.utiljava.sql,javax.servlet,org.apache.strtuts.actio常用的接口:n,org.hibernateRemoteListMapDocumentNodeList,Servlet,HttpServletRequest,HttpServletResponse,Transacti、on(Hibernate)Session(Hibernate),HttpSession中有幾種類型的流?為每種類型的流提供了一些抽象類以供繼承,請說出他5javaJDK們分別是哪些類?字節(jié)流,字符流。字節(jié)流繼承于,字符流繼承于InputStreamOutputStreamInputStreamReader。在包中還有許多其他的流,主要是為了提高性能OutputStreamWriterjava.io和使用方便。6、多線程有幾種實現方法同步有幾種實現方法多線程有兩種實現方法,分別是繼承類與實現接口RunnableThread同步的實現方面有兩種,分別是處于等待狀態(tài),并且釋放所持有的對象的與使一個線程lock。synchronized,waitnotifywait():使一個正在運行的線程處于睡眠狀態(tài),是一個靜態(tài)方法,調用此方法要sleep():捕捉中斷異常異常。InterruptedException()喚醒一個處于等待狀態(tài)的線程,注意的是在調用此方法的時候,并不notify():能確切的喚醒某一個等待狀態(tài)的線程,而是由確定喚醒哪個線程,而且JVM不是按優(yōu)先級。喚醒所有處入等待狀態(tài)的線程,注意并不是給所有Allnotity():喚醒線程一個對象的鎖,而是讓它們競爭。7、說一說的生命周期Servlet答有良好的生存期的定義,包括加載和實例化、初始化、處理請求以:servlet法表達。接口的和方javax.servlet.Servletinit,servicedestroy被服務器實例化后,容器運行其方法,請求到達時運行其serviceServletinit方法,service方法自動派遣運行與請求對應的方法(,)doXXXdoGetdoPost等,當服務器決定將實例銷毀的時候調用其web容器加載servlet方法。destroy的方法進行servletinit()的servlet初始化。通過調用方法實現,根據請求的不同調用不同的方service()法。結束服務,容器調用的。方法。web8、說出數據連接池的工作機制是什么servletdestroy服務器啟動時會建立一定數量的池連接,并一直維持不少于此數目的池連J2EE接??蛻舳顺绦蛐枰B接時,池驅動程序會返回一個未使用的池連接并將其表記為忙。如果當前沒有空閑連接,池驅動程序就新建一定數量的連接,新建連接的數量有配置參數決定。當使用的池連接調用完成后,池驅動程序將此連接表記為空閑,其他調用就可以使用這個連接。實現方式,返回的是原始的代理,代理的ConnectionConnectionConnection方法不是真正關連接,而是把它代理的close對象還回到連接池中。Connection9、這段代碼有什么不足之處try{Connectionconn=...;Statementstmt=...;ResultSetrs=stmt.executeQuery("select*fromtable1");while(rs.next({}}catch(Exceptionex){}答:沒有語句來關閉各個對象,另外,使用之后,要把變量的定finallyfinally義放在語句塊的外面,以便在語句塊之外的塊中仍可以訪問這finallytrytry些變量。、一個用戶具有多個角色,請查詢出該表中具有該用戶的所有角色的其他用戶。10selectcount(*)asnum,tb.idfromtb,(selectrolefromtbwhereid=xxx)ast1wheretb.role=t1.roleandtb.id!=t1.idgroupbytb.idhavingnum=selectcount(role)fromtbwhereid=xxx;、一個用戶表中有一個積分字段,假如數據庫中有多萬個用戶,若要在每年11100第一天凌晨將積分清零,你將考慮什么,你將想什么辦法解決altertabledropcolumnscore;可能會很快,但是需要試驗,試驗不能拿真實altertableaddcolunmscoreint;的環(huán)境來操刀,并且要注意,這樣的操作時無法回滾的,在我的印象中,只有等語句才能回滾,對于等語句是不能回滾。解決方案一,inertupdatedeleteDMLcreatetable,droptable,altertableDDL解決方案二,假設上面的代碼要執(zhí)行好長時間,超出updateusersetscore=0;我們的容忍范圍,那我就altertableuserdropcolumnscore;altertableuseradd。下面代碼實現每年的那個凌晨時刻進行清零。columnscoreintRunnablerunnable=newRunnable(){publicvoidrun(){clearDb();schedule(this,newDate(newDate().getYear()+1,0,0));}schedule(runnable,newDate(newDate().getYear()+1,0,1));、你對的理解什么是的。springIOCAOP12Spring,實現了工廠模式的工廠類(在這里有必要解釋清楚什么是工1.Spring個類名為(實際上是一個接口),在程序中通常的子類BeanFactoryBeanFactory。相當于一個大的工廠類,在其配置文件中通過ApplicationContextSpring元素配置用于創(chuàng)建實例對象的類名和實例對象的屬性。<bean>提供了對良好支持,是一種編程思想,是一種架構藝術,2.Spring利用這種思想),什么叫依賴注入可DepencyInjection以譬很呢?,ClassProgrammer{好地實現模塊之間的解Computercomputer=null;publicvoidcode(){//Computercomputer=newIBMComputer();//Computercomputer=beanfacotry.getComputer();computer.write();}publicvoidsetComputer(Computercomputer){puter=computer;}另外兩種方式都由依賴,第一個直接依賴于目標類,第二個把依賴轉移到}工廠上,第三個徹底與目標和工廠解耦了。在的配置文件中配置片段spring如下:””””<beanid=computerclass=erview.Computer></bean>””””<beanid=programmerclass=erview.Programmer>””””<propertyname=computerref=computer></property></bean>提供了對技術的良好封裝,稱為面向切面編程,就是系統(tǒng)3.SpringAOPAOP中有很多各不相干的類的方法,在這些眾多方法中要加入某種系統(tǒng)功能的代碼,例如,加入日志,加入權限判斷,加入異常處理,這種應用稱為。AOP實現AOP代理類與目標類對外具有相同的方法聲明,有兩種方式可以實現相同的方法聲明,一是實現相同的接口,二是作為目標的子類在,中采用類產ProxyJDK生動態(tài)代理的方式為某個接口生成實現類,如果要為某個類生成子類,則可以用。在生成的代理類的方法中加入系統(tǒng)功能和調用目標類的相應方CGLIB

溫馨提示

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

評論

0/150

提交評論