JAVA面試題目匯總_第1頁
JAVA面試題目匯總_第2頁
JAVA面試題目匯總_第3頁
JAVA面試題目匯總_第4頁
JAVA面試題目匯總_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、1. Java 中多態(tài)有哪些表現(xiàn)形式,都有什么區(qū)別a) Overrideb) Overload區(qū)別:1) override 是父類與子類之間多態(tài)性的一種表現(xiàn), overload 是一個(gè)類中多態(tài) 性的一種表現(xiàn)。2) 如果在子類中定義某方法與其父類有相同的名稱和參數(shù),我們說該方法被重 寫 (Overriding) 。子類的對(duì)象使用這個(gè)方法時(shí),將調(diào)用子類中的定義,對(duì) 它而言,父類中的定義如同被 屏蔽 了。3) 如果在一個(gè)類中定義了多個(gè)同名的方法,它們或有不同的參數(shù)個(gè)數(shù)或有不同 的參數(shù)類型或有不同的參數(shù)次序,則稱為方法的重載 (Overloading) 。2. Abstract class 和 int

2、erface 有什么區(qū)別a) 抽象類中可以有實(shí)體方法,接口中的方法全部是抽象方法b) 接口中的方法全部是 public 的,屬性全部是 public static final 的。抽 象類則和其他類類似。c) 一個(gè)類可以實(shí)現(xiàn)多個(gè)接口,但只能繼承一個(gè)抽象類。3. List, Set, Map 幾個(gè)接口有什么共同點(diǎn)和不同點(diǎn)a) 都是 java.util 包下的接口b) List和Set都是Collection 的子接口,Map沒有父接口c) List 的元素是有序的,元素可以重復(fù)。 Set 的元素不能保證次序,存入的元素不能有重復(fù)。d) Map使用key-value來映射和存儲(chǔ)數(shù)據(jù),Key必須惟一

3、,value可以重復(fù)。4. 請(qǐng)解釋一下 Java 的泛型,使用泛型有什么好處a) 泛型的本質(zhì)是參數(shù)化類型,也就是說所操作的數(shù)據(jù)類型被指定為一個(gè)參數(shù)。 這種參數(shù)類型可以用在類、接口和方法的創(chuàng)建中,分別稱為泛型類、泛型 接口、泛型方法b) 泛型的好處是在編譯的時(shí)候檢查類型安全,并且所有的強(qiáng)制轉(zhuǎn)換都是自動(dòng)和 隱式的,提高代碼的重用率5. 多線程有幾種實(shí)現(xiàn)方法 , 都是什么 ?同步有幾種實(shí)現(xiàn)方法 ,都是什么?a) 多線程有兩種實(shí)現(xiàn)方法,分別是繼承 Thread 類與實(shí)現(xiàn) Runnable 接口b) 同步的實(shí)現(xiàn)方面有兩種,分別是 synchronized,wait 與 notify6. Java 類實(shí)現(xiàn)

4、 Serializable 接口有什么用處, Serializable 接口需要實(shí)現(xiàn)什么 方法a) 實(shí)現(xiàn) Serializable 接口的類才可以被序列化,才可以在網(wǎng)絡(luò)或者進(jìn)行 I/O 讀取操作。b) 實(shí)現(xiàn) Serializable 接口不需要實(shí)現(xiàn)任何方法。7. 說出 Servlet 的生命周期Servlet 被服務(wù)器實(shí)例化后,容器運(yùn)行其 init 方法,請(qǐng)求到達(dá)時(shí)運(yùn)行其service方法,service 方法自動(dòng)派遣運(yùn)行與請(qǐng)求對(duì)應(yīng)的 doXXX方法(doGet,d oPo st )等,當(dāng)服務(wù)器決定將實(shí)例銷毀的時(shí)候調(diào)用其 destroy 方法8. 說出數(shù)據(jù)連接池的工作機(jī)制是什么J2EE 服務(wù)器

5、啟動(dòng)時(shí)會(huì)建立一定數(shù)量的池連接,并一直維持不少于此數(shù)目的池連 接??蛻舳顺绦蛐枰B接時(shí),池驅(qū)動(dòng)程序會(huì)返回一個(gè)未使用的池連接并將其表 記為忙。如果當(dāng)前沒有空閑連接,池驅(qū)動(dòng)程序就新建一定數(shù)量的連接,新建連 接的數(shù)量有配置參數(shù)決定。當(dāng)使用的池連接調(diào)用完成后,池驅(qū)動(dòng)程序?qū)⒋诉B接 表記為空閑,其他調(diào)用就可以使用這個(gè)連接。9. 解析XML文檔有哪幾種方式?a) DOM: DOM在解析文件之前把整個(gè)文檔裝入內(nèi)存,如果處理大型文件時(shí)其性能下降的非常厲害。這個(gè)問題是由 DOM的樹結(jié)構(gòu)所造成的,這種結(jié)構(gòu)占用 的內(nèi)存較多,適合對(duì)XML的隨機(jī)訪問。b) SAX: SAX是事件驅(qū)動(dòng)型的XML解析方式。它順序讀取 XML文

6、件,不需要一次全部裝載整個(gè)文件。當(dāng)遇到像文件開頭,文檔結(jié)束,或者標(biāo)簽開頭與標(biāo)簽結(jié)束時(shí),它會(huì)觸發(fā)一個(gè)事件,用戶通過在其回調(diào)事件中寫入處理代碼來處理XML文件,適合對(duì)XML的順序訪問c) StAX: StAX 把重點(diǎn)放在流上。實(shí)際上, StAX 與其他方法的區(qū)別就在于應(yīng) 用程序能夠把 XML 作為一個(gè)事件流來處理。將 XML 作為一組事件來處理 的想法并不新穎(事實(shí)上 SAX 已經(jīng)提出來了) ,但不同之處在于 StAX 允 許應(yīng)用程序代碼把這些事件逐個(gè)拉出來,而不用提供在解析器方便時(shí)從解 析器中接收事件的處理程序。10. EJB有幾種類型,他們之間的區(qū)別有哪些?a) Session Bean, E

7、ntity Bean, Message-Driven Beanb) SessionBean 是一種非持久性對(duì)象,它實(shí)現(xiàn)某些在服務(wù)器上運(yùn)行的業(yè)務(wù)邏輯。c) EntityBean 是一種持久性對(duì)象,它代表一個(gè)存儲(chǔ)在持久性存儲(chǔ)器中的實(shí)體的對(duì)象視圖,或是一個(gè)由現(xiàn)有企業(yè)應(yīng)用程序?qū)崿F(xiàn)的實(shí)體。11. 請(qǐng)說出IOC和AOP的概念以及在spring中是如何應(yīng)用的a) IoC 的全稱是 Inversion of Control 即控制反轉(zhuǎn)。 IoC 模式中, 創(chuàng)建對(duì)象實(shí)例的任務(wù)交給 IoC 容器或框架,使得應(yīng)用代碼只需要直接使用實(shí)例b) AOP的全稱是Aspect-Oriented Programming 即面向

8、方面編程。AOP的核心思想就是“將應(yīng)用程序中的商業(yè)邏輯同對(duì)其提供支持的通用服務(wù)進(jìn)行分 離”。它允許程序員對(duì)橫切關(guān)注點(diǎn)或橫切典型的職責(zé)分界線的行為(例如日 志和事務(wù)管理)進(jìn)行模塊化。AOP的核心構(gòu)造是方面,它將那些影響多個(gè)類的行為封裝到可重用的模塊中。c) Spring 的核心容器的主要組件是 BeanFactory ,它是工廠模式的實(shí)現(xiàn)。BeanFactory使用控制反轉(zhuǎn)(IOC)模式將應(yīng)用程序的配置和依賴性規(guī)范與實(shí)際的應(yīng)用程序代碼分開。d) 通過配置管理特性, Spring AOP 模塊直接將面向方面的編程功能集成到了Spring 框架中。所以,可以很容易地使 Spring 框架管理的任何對(duì)

9、象支持 AOP。 Spring AOP 模塊為基于 Spring 的應(yīng)用程序中的對(duì)象提供了事務(wù)管 理服務(wù)。通過使用 Spring AOP ,不用依賴 EJB 組件,就可以將聲明性事務(wù)管理集成到應(yīng)用程序中。12. 如何集成 strut2 、Spring 和 hibernate ,需要做什么樣的工作?a) 在 web.xml 中 配 置 spring contextConfigLocation 和 strut2 的 FilterDispatcherb) 在 struts.xml 中配置 struts.objectFactory 屬性為 springc) 在 spring 的 context xml

10、 中 配 置 hibernate 的 datasource 和 sessionfactory.13. Hibernate 的延遲加載有什么意義?如果配置了延遲加載,在頁面前端用到 了延遲加載的屬性,會(huì)有什么問題,如何避免?a) 設(shè)置屬性的延遲加載可以避免不必要的數(shù)據(jù)庫讀取,只有在真正調(diào)用屬性 get 方法的時(shí)候才讀取數(shù)據(jù)庫,可以減少對(duì)數(shù)據(jù)庫訪問次數(shù),提高加載速 度。b) 如果配置了延遲加載屬性,在頁面前端使用時(shí)會(huì)因?yàn)?sessionfactory 已經(jīng) 關(guān) 閉 ,導(dǎo) 致 屬 性 無 法獲 取 。 可 以 通 過 在 web.xml 中 配 置 OpenSessionInView 的 filte

11、r 來避免。14. 常見的 ajax 的框架有哪些?介紹一下你所熟悉框架的用法。dwr, jquery, js on, dojo , prototype 15. String 和 Stringbuffer 間有和區(qū)別后者的長度可變16. Dependency lookup 和 Dependency Injection 是 Spring 框架的哪個(gè)特性?兩者之間有何區(qū)別?17. Dependency Injection 有幾種類型Setter Injection和 Constructor Injection18. IOC Container 提供了兩者類型的 Containter ,是哪兩種?

12、它們之間有何 區(qū)別BeanFactory :ApplicationContext: Context 預(yù)先 Loading 所有的 SingleTon Bean ,即啟動(dòng)時(shí)不需要等待 Bean 的生成。另外它提供了對(duì)國際化的支持。19. Bean的三中實(shí)例化方式(1 ) 不需要特定的 Interface(2)Static Factory Method(3)Instance Factory Method20. Anotation 是什么?它有什么作用?列舉幾個(gè)用過的 Anotation 并說明?如 何自定義一個(gè)retention, target, resource等21. jsp 有哪些內(nèi)置對(duì)象

13、?作用分別是什么 ?JSP 共有以下 9 種基本內(nèi)置組件:request用戶端請(qǐng)求,此請(qǐng)求會(huì)包含來自 GET/POS請(qǐng)求的參數(shù)response 網(wǎng)頁傳回用戶端的回應(yīng)pageContext 網(wǎng)頁的屬性是在這里管理session 與請(qǐng)求有關(guān)的會(huì)話期application servlet 正在執(zhí)行的內(nèi)容out 用來傳送回應(yīng)的輸出config servlet 的構(gòu)架部件page JSP 網(wǎng)頁本身exception 針對(duì)錯(cuò)誤網(wǎng)頁,未捕捉的例外22. spring 的聲明式事務(wù)是如何實(shí)現(xiàn)的用到了什么設(shè)計(jì)模式通過動(dòng)態(tài)代理模式實(shí)現(xiàn)同時(shí)有AOP的概念23. hibernate 的 cascade 和 inver

14、se 的概念區(qū)別cascade 級(jí)聯(lián) inverse 是鏡像24. 談?wù)?struts1.x 中的 ActionServlet 和 Action 分別使用到了 J2EE 的哪 些設(shè)計(jì)模式FrontController, command 模式25. Socket 編程中 TCP/IP 協(xié)議 和 UDP 協(xié)議的區(qū)別 三次握手 郵件26. 如何實(shí)現(xiàn)無阻塞的 Socket 編程 NIO 概念利用 NIO 的通道 事件響應(yīng) selector 注冊(cè)來達(dá)到無阻塞27. 數(shù)據(jù)庫 臟讀 不可重復(fù)讀 幻影讀的概念 以及如何避免以上情況 讀取到其他事務(wù)未提交的操作 讀取到其他事務(wù)已經(jīng)提交的操作先后兩次讀取 同樣的檢

15、索 由于有其他事務(wù)的影響 結(jié)果集的數(shù)目發(fā)生變化 利用鎖 , 事務(wù)隔離級(jí)別28. 如果看待選擇 hibernate 的 session.delete 方法執(zhí)行大批量數(shù)據(jù)刪除操作 產(chǎn)生大量對(duì)象 建議直接用 jdbc 刪除29. prototype 中閉包的概念 closure javascript中作用域的申明 和生成地點(diǎn)綁定30. 如何防止內(nèi)存泄漏釋放該釋放的資源 利用 LUR FIFO 等算法替換長時(shí)間無用的對(duì)象 避免內(nèi) 存不足利用 weakreference 立即釋放對(duì)象資源 softreference 內(nèi)存不足時(shí)候回收 資源 不必等到垃圾回收點(diǎn)的觸發(fā)養(yǎng)成良好的 try finally習(xí)慣

16、在 finally 中手動(dòng)釋放資源31. 數(shù)組如何聲明,實(shí)例化,特別是二維數(shù)組 數(shù)組聲明的方式一般有兩種, 比如一個(gè) int 數(shù)組 : int intArray;int intArray; 都可以,推薦使用第一種,數(shù)組的實(shí)例化是通過new關(guān)鍵字實(shí)現(xiàn)的,int intArray = newint3;二維數(shù)組,比如定義一個(gè) 2 行 3 列的數(shù)組 int intArray = new int23;實(shí)際上。對(duì)于每行列數(shù)可以不同32. 關(guān)于GC列舉常見的垃圾回收算法引用計(jì)數(shù)法 (Reference Counting Collector)跟蹤法 (Tracing Collector)compacting

17、算法(Compacting Collector)copying算法(Coping Collector)等等,一般常用的引用計(jì)數(shù)法和跟蹤法33. Struts1 Struts2 Spring Mvc 的前端控制器分別是什么,講述其中一種 MVC 的工作流程Struts1 采用 servlet 作為前端控制器,具體為 ActionServletStruts2 采用 Filter 作為前端控制器,具體為FilterDispatcherSpring 采用 servlet 作為前端控制器,具體為DispatcherServlet34. 如何格式化日期,比如系統(tǒng)時(shí)間,格式為YYYY-MM-DD 如, 何做日期的加減,比如取當(dāng)前日期之前 60 天SimpleDateFormat ,比如 SimpleDateFormat format=newSimpleDateFormat(YYYY-MM-DD);利用定義好的 SimpleDateFormat 對(duì)象,完成 Date 與字符串的轉(zhuǎn) 換,比如 format()- 按照指定格式,將 date 格式化為字符串, parse() 等方法

溫馨提示

  • 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)論