版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、面試題1. 面向對象的特征,具體描述2. 說出Servlet 的生命周期,并說出Servlet 和CGI 的區(qū)別。與cgi 的區(qū)別在于servlet 處于服務器進程中,它通過多線程方式運行其service 方法,一個實例可以服務于多個請求,并且其實例一般不會銷毀,而CGI 對每個請求都產生新的進程,服務完成后就銷毀,所以效率上低于servlet 。3. 說出ArrayList,Vector, LinkedList的存儲性能和特性ArrayList 和Vector 都是使用數(shù)組方式存儲數(shù)據(jù),此數(shù)組元素數(shù)大于實際存儲的數(shù)據(jù)以便增加和插入元素,它們都允許直接按序號索引元素,但是插入元素要涉及數(shù)組元素
2、移動等內存操作,所以索引數(shù)據(jù)快而插入數(shù)據(jù)慢,Vector 由于使用了synchronized 方法(線程安全),通常性能上較ArrayList 差,而LinkedList 使用雙向鏈表實現(xiàn)存儲,按序號索引數(shù)據(jù)需要進行前向或后向遍歷,但是插入數(shù)據(jù)時只需要記錄本項的前后項即可,所以插入速度較快。4. EJB是基于哪些技術實現(xiàn)的?并說出SessionBean 和EntityBean 的區(qū)別,StatefulBean 和StatelessBean 的區(qū)別。EJB 包括Session Bean 、Entity Bean 、Message Driven Bean ,基于JNDI 、RMI 、JAT 等技術
3、實現(xiàn)。對于客戶機,SessionBean 是一種非持久性對象,它實現(xiàn)某些在服務器上運行的業(yè)務邏輯。對于客戶機,EntityBean 是一種持久性對象,它代表一個存儲在持久性存儲器中的實體的對象視圖,或是一個由現(xiàn)有企業(yè)應用程序實現(xiàn)的實體。Session Bean 還可以再細分為 Stateful Session Bean 與 Stateless Session Bean ,這兩種的 Session Bean 都可以將系統(tǒng)邏輯放在 method之中執(zhí)行,不同的是 Stateful Session Bean 可以記錄呼叫者的狀態(tài),因此通常來說,一個使用者會有一個相對應的 Stateful Sessi
4、on Bean 的實體。Stateless Session Bean 雖然也是邏輯組件,但是他卻不負責記錄使用者狀態(tài),也就是說當使用者呼叫 Stateless Session Bean 的時候,EJB Container 并不會找尋特定的 Stateless Session Bean 的實體來執(zhí)行這個 method。換言之,很可能數(shù)個使用者在執(zhí)行某個 Stateless Session Bean 的 methods 時,會是同一個 Bean 的 Instance 在執(zhí)行。從內存方面來看, Stateful Session Bean 與 Stateless Session Bean 比較, St
5、ateful Session Bean 會消耗 J2EE Server 較多的內存,然而 Stateful Session Bean 的優(yōu)勢卻在于他可以維持使用者的狀態(tài)。5. HashMap和Hashtable 的區(qū)別。6. final, finally, finalize的區(qū)別。final 修飾符(關鍵字)如果一個類被聲明為final ,意味著它不能再派生出新的子類,不能作為父類被繼承。因此一個類不能既被聲明為 abstract 的,又被聲明為final 的。將變量或方法聲明為final ,可以保證它們在使用中不被改變。被聲明為final 的變量必須在聲明時給定初值,而在以后的引用中只能讀取
6、,不可修改。被聲明為final 的方法也同樣只能使用,不能重載。finally 再異常處理時提供 finally 塊來執(zhí)行任何清除操作。如果拋出一個異常,那么相匹配的 catch 子句就會執(zhí)行,然后控制就會進入 finally 塊(如果有的話)。finalize 方法名。Java 技術允許使用 finalize( 方法在垃圾收集器將對象從內存中清除出去之前做必要的清理工作。這個方法是由垃圾收集器在確定這個對象沒有被引用時對這個對象調用的。它是在 Object 類中定義的,因此所有的類都繼承了它。子類覆蓋 finalize( 方法以整理系統(tǒng)資源或者執(zhí)行其他清理工作。finalize( 方法是在垃
7、圾收集器刪除對象之前對這個對象調用的。7. sleep( 和 wait( 有什么區(qū)別?sleep(方法是使線程停止一段時間的方法。在sleep 時間間隔期滿后,線程不一定立即恢復執(zhí)行。這是因為在那個時刻,其它線程可能正在運行而且沒有被調度為放棄執(zhí)行,除非(a"醒來" 的線程具有更高的優(yōu)先級 (b正在運行的線程因為其它原因而阻塞。wait(是線程交互時,如果線程對一個同步對象x 發(fā)出一個wait(調用,該線程會暫停執(zhí)行,被調對象進入等待狀態(tài),直到被喚醒或等待時間到。8. Overload和Override 的區(qū)別。Overloaded 的方法是否可以改變返回值的類型? ove
8、rride 是方法重載,用在同一個類中,是幾個方法的名字相同,返回值相同,但是參數(shù)列表不同,舉例來說就像構造函數(shù),可以后多個構造函數(shù),并且每個的參數(shù)列表都不同,這樣可以用多種方式構造對象。overload 是方法覆蓋,用在父子類中,是方法名字相同,參數(shù)列表也相同,聲明形式都相同,但是子類方法的權限不允許小于父類,不允許拋出比父類更多的異常。調用子類的方法與父類的同名方法無關,在子類中完全覆蓋了父類的方法。9. 同步和異步有何異同,在什么情況下分別使用他們?舉例說明。如果數(shù)據(jù)將在線程間共享。例如正在寫的數(shù)據(jù)以后可能被另一個線程讀到,或者正在讀的數(shù)據(jù)可能已經(jīng)被另一個線程寫過了,那么這些數(shù)據(jù)就是共享
9、數(shù)據(jù),必須進行同步存取。當應用程序在對象上調用了一個需要花費很長時間來執(zhí)行的方法,并且不希望讓程序等待方法的返回時,就應該使用異步編程,在很多情況下采用異步途徑往往更有效率。10. abstract class和interface 有什么區(qū)別?11. forward 和redirect 的區(qū)別12. EJB與JA V A BEAN的區(qū)別?13. JSP中動態(tài)INCLUDE 與靜態(tài)INCLUDE 的區(qū)別?14. 什么時候用assert斷言是一個包含布爾表達式的語句,在執(zhí)行這個語句時假定該表達式為 true 。如果表達式計算為 false ,那么系統(tǒng)會報告一個 Assertionerror 。它用
10、于調試目的:assert(a > 0; / throws an Assertionerror if a <= 0斷言可以有兩種形式:assert Expression1 ;assert Expression1 : Expression2 ;Expression1 應該總是產生一個布爾值。Expression2 可以是得出一個值的任意表達式。這個值用于生成顯示更多調試信息的 String 消息。斷言在默認情況下是禁用的。要在編譯時啟用斷言,需要使用 source 1.4 標記:javac -source 1.4 Test.java要在運行時啟用斷言,可使用 -enableassert
11、ions 或者 -ea 標記。要在運行時選擇禁用斷言,可使用 -da 或者 -disableassertions 標記。 要系統(tǒng)類中啟用斷言,可使用 -esa 或者 -dsa 標記。還可以在包的基礎上啟用或者禁用斷言??梢栽陬A計正常情況下不會到達的任何位置上放置斷言。斷言可以用于驗證傳遞給私有方法的參數(shù)。不過,斷言不應該用于驗證傳遞給公有方法的參數(shù),因為不管是否啟用了斷言,公有方法都必須檢查其參數(shù)。不過,既可以在公有方法中,也可以在非公有方法中利用斷言測試后置條件。另外,斷言不應該以任何方式改變程序的狀態(tài)。15. 應用服務器有那些?16. 接口是否可繼承接口? 抽象類是否可實現(xiàn)(impleme
12、nts接口? 抽象類是否可繼承實體類(concrete class?接口可以繼承接口。抽象類可以實現(xiàn)(implements接口。抽象類是否可繼承實體類,但前提是實體類必須有明確的構造函數(shù)。17. 說出數(shù)據(jù)連接池的工作機制是什么?18. 分頁是我們在做項目的時候經(jīng)常會遇到的技術點之一, 分頁技術從設計的角度考慮主要分為兩大類:1. 基于緩存的分頁實現(xiàn)2. 基于數(shù)據(jù)庫查詢的分頁實現(xiàn)兩者在使用上各有優(yōu)缺點:第1種實現(xiàn)方式將數(shù)據(jù)庫中的所有符合要求的數(shù)據(jù)一次性裝入內存, 然后通過List 的sublist 方法進行分頁, 優(yōu)點在于不必頻繁訪問數(shù)據(jù)庫, 缺點是當數(shù)據(jù)量非常大的時候, 對內存配置的要求比較高
13、.第2種實現(xiàn)方式是通過數(shù)據(jù)庫的限制條件, 每次查詢一定數(shù)目的數(shù)據(jù), 如通過oracle 中的rownum 加上where 限制條件. 優(yōu)點在于每次取出一定數(shù)目的數(shù)據(jù), 內存使用較小, 缺點是需要頻繁的訪問數(shù)據(jù)庫.下面借用網(wǎng)上的一個示例說明:19. JAV A 中文亂碼解決方案20. 表單提交中get 和post 方式的區(qū)別1. get是從服務器上獲取數(shù)據(jù),post 是向服務器傳送數(shù)據(jù)。2. get是把參數(shù)數(shù)據(jù)隊列加到提交表單的ACTION 屬性所指的URL 中,值和表單內各個字段一一對應,在URL 中可以看到。post 是通過HTTP post機制,將表單內各個字段與其內容放置在HTML HE
14、ADER內一起傳送到ACTION 屬性所指的URL 地址。用戶看不到這個過程。3. 對于get 方式,服務器端用Request.QueryString 獲取變量的值,對于post 方式,服務器端用Request.Form 獲取提交的數(shù)據(jù)。4. get傳送的數(shù)據(jù)量較小,不能大于2KB 。post 傳送的數(shù)據(jù)量較大,一般被默認為不受限制。但理論上,IIS4中最大量為80KB ,IIS5中為100KB 。5. get安全性非常低,post 安全性較高。21.String 常用的函數(shù)char charAt(int index返回指定索引處的 char 值。int compareTo(String an
15、otherString按字典順序比較兩個字符串。int compareToIgnoreCase(String str不考慮大小寫,按字典順序比較兩個字符串。String concat(String str將指定字符串聯(lián)到此字符串的結尾。static String copyValueOf(char data返回指定數(shù)組中表示該字符序列的字符串。static String copyValueOf(char data, int offset, int count返回指定數(shù)組中表示該字符序列的字符串。boolean endsWith(String suffix測試此字符串是否以指定的后綴結束。bool
16、ean equals(Object anObject比較此字符串與指定的對象。boolean equalsIgnoreCase(String anotherString將此 String 與另一個 String 進行比較,不考慮大小寫。int indexOf(int ch返回指定字符在此字符串中第一次出現(xiàn)處的索引。int indexOf(int ch, int fromIndex從指定的索引開始搜索,返回在此字符串中第一次出現(xiàn)指定字符處的索引。 int indexOf(String str返回第一次出現(xiàn)的指定子字符串在此字符串中的索引。int indexOf(String str, int f
17、romIndex從指定的索引處開始,返回第一次出現(xiàn)的指定子字符串在此字符串中的索引。 String intern(返回字符串對象的規(guī)范化表示形式。int lastIndexOf(int ch返回最后一次出現(xiàn)的指定字符在此字符串中的索引。int lastIndexOf(int ch, int fromIndex從指定的索引處開始進行后向搜索,返回最后一次出現(xiàn)的指定字符在此字符串中的索引。int lastIndexOf(String str返回在此字符串中最右邊出現(xiàn)的指定子字符串的索引。int lastIndexOf(String str, int fromIndex從指定的索引處開始向后搜索,返
18、回在此字符串中最后一次出現(xiàn)的指定子字符串的索引int length(返回此字符串的長度。String replace(char oldChar, char newChar返回一個新的字符串,它是通過用 newChar 替換此字符串中出現(xiàn)的所有 oldChar 而生成的。boolean startsWith(String prefix測試此字符串是否以指定的前綴開始。boolean startsWith(String prefix, int toffset測試此字符串是否以指定前綴開始,該前綴以指定索引開始。String substring(int beginIndex返回一個新的字符串,它是此
19、字符串的一個子字符串。String substring(int beginIndex, int endIndex返回一個新字符串,它是此字符串的一個子字符串。char toCharArray(將此字符串轉換為一個新的字符數(shù)組。String toLowerCase(使用默認語言環(huán)境的規(guī)則將此 String 中的所有字符都轉換為小寫。String toLowerCase(Locale locale使用給定 Locale 的規(guī)則將此 String 中的所有字符都轉換為小寫。String toUpperCase(使用默認語言環(huán)境的規(guī)則將此 String 中的所有字符都轉換為大寫。String trim
20、(返回字符串的副本,忽略前導空白和尾部空白。static String valueOf(boolean b返回 boolean 參數(shù)的字符串表示形式。static String valueOf(char c返回 char 參數(shù)的字符串表示形式static String valueOf(char data返回 char 數(shù)組參數(shù)的字符串表示形式。static String valueOf(char data, int offset, int count返回 char 數(shù)組參數(shù)的特定子數(shù)組的字符串表示形式。static String valueOf(double d返回 double 參數(shù)的字符串
21、表示形式。static String valueOf(float f返回 float 參數(shù)的字符串表示形式。static String valueOf(int i返回 int 參數(shù)的字符串表示形式。static String valueOf(long l返回 long 參數(shù)的字符串表示形式。static String valueOf(Object obj返回 Object 參數(shù)的字符串表示形式。22.struts 原理23. page、request 、session 、application 作用域page 在當前頁面有效(僅用于JSP 中request 在當前請求中有效session 在當
22、前會話中有效application 在所有應用程序中有效24. 解釋spring,struts,hibernate 優(yōu)缺點Struts 優(yōu)點:對視圖層進行封裝 更好的分離視圖層和控制層 對數(shù)據(jù)進行封裝 缺點: 1 、轉到展示層時,需要配置forward ,每一次轉到展示層,相信大多數(shù)都是直接轉到jsp ,而涉及到轉向,需要配置forward ,如果有十個展示層的jsp ,需要配置十次struts ,而且還不包括有時候目錄、文件變更,需要重新修改forward ,注意,每次修改配置之后,要求重新部署整個項目,而tomcate 這樣的服務器,還必須重新啟動服務器,如果業(yè)務變更復雜頻繁的系統(tǒng),這樣的
23、操作簡單不可想象?,F(xiàn)在就是這樣,幾十上百個人同時在線使用我們的系統(tǒng),大家可以想象一下,我的煩惱有多大。2 、Struts 的Action 必需是thread safe 方式,它僅僅允許一個實例去處理所有的請求。所以action 用到的所有的資源都必需統(tǒng)一同步,這個就引起了線程安全的問題。3、 測試不方便. Struts的每個Action 都同Web 層耦合在一起,這樣它的測試依賴于Web 容器,單元測試也很難實現(xiàn)。不過有一個Junit 的擴展工具Struts TestCase 可以實現(xiàn)它的單元測試。4、 類型的轉換. Struts的FormBean 把所有的數(shù)據(jù)都作為String 類型,它可以
24、使用工具Commons-Beanutils 進行類型轉化。但它的轉化都是在Class 級別,而且轉化的類型是不可配置的。類型轉化時的錯誤信息返回給用戶也是非常困難的。5、 對Servlet 的依賴性過強. Struts處理Action 時必需要依賴ServletRequest 和ServletResponse ,所有它擺脫不了Servlet 容器。6、 前端表達式語言方面.Struts 集成了JSTL ,所以它主要使用JSTL 的表達式語言來獲取數(shù)據(jù)??墒荍STL 的表達式語言在Collection 和索引屬性方面處理顯得很弱。7、 對Action 執(zhí)行的控制困難. Struts創(chuàng)建一個Act
25、ion ,如果想控制它的執(zhí)行順序將會非常困難。甚至你要重新去寫Servlet 來實現(xiàn)你的這個功能需求。8、 對Action 執(zhí)行前和后的處理. Struts處理Action 的時候是基于class 的hierarchies ,很難在action 處理前和后進行操作。9、 對事件支持不夠. 在struts 中,實際是一個表單Form 對應一個Action 類(或DispatchAction ,換一句話說:在Struts 中實際是一個表單只能對應一個事件,struts 這種事件方式稱為application event,application event和component event相比是一種粗
26、粒度的事件。Spring 優(yōu)點: 用依賴注入模式大幅度的減少了程序之間的耦合性 并很好的實現(xiàn)了各種JAVA 的設計模式 強制使用者養(yǎng)成用接口編程的習慣缺點: 使用人數(shù)不多、jsp 中要寫很多代碼、控制器過于靈活,缺少一個公用控制器Hibernate: 用操作對象的方式操作數(shù)據(jù)庫 將對數(shù)據(jù)庫的操作面向對象化 并對一些數(shù)據(jù)庫操作進行了封裝缺點: 它限制您所使用的對象模型。(例如,一個持久性類不能映射到多個表 其獨有的界面和可憐的市場份額也讓人不安,盡管如此,Hibernate 還是以其強大的發(fā)展動力減輕了這些風險。其他的開源持久性框架也有一些,不過都沒有 Hibernate 這樣有市場沖擊力。25
27、. 文件上傳原理最基本的過程是:1 客戶端連接一個主機;2 服務器接收連接,3 客戶端請求一個文件,4 服務器發(fā)送一個應答.26. 幾種排序方式,寫出快速排序27. jdbc中PreparedStatment 與Statement 區(qū)別如果一個sql 語句很復雜,包含多條SQL 語句的話,PreparedSatement 與Statement 之間的執(zhí)行會有區(qū)別。PreparedStatment 是預編譯的語句,如果用非批處理方法如:execute(, executeQuery(方法是不正確的,會出現(xiàn)Exception 。但是,利用Statement 可以執(zhí)行成功,看來,這也是Prepared
28、Statment 和Statement 語句的區(qū)別吧28. Collection與Collections 區(qū)別29. 說明Collection 的framework 機制30. 寫單例模式單例模式的實現(xiàn)代碼如下:namespace SinglePatternpublic class SingleClassprivate static SingleClass instance;protected SingleClass(public static SingleClass GetInstance(if(instance = nullinstance = new SingleClass(;retur
29、n instance;上面的代碼,可以說是一個標準的單例的代碼,但是上述代碼在多線程的時候有可能會產生多個實例,為了避免這個情況的發(fā)生,我們需要限制同一時間,只能有一個線程訪問。利用lock 可以實現(xiàn)我們的目的:namespace SinglePatternpublic class SingleClass/ 靜態(tài)變量private static SingleClass instance;/ "鎖" 變量private static object lockObject = new objest(;/ 受保護的構造函數(shù)protected SingleClass(/ 靜態(tài)獲取對象的方法public static SingleClass GetInstance
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度酒店客房智能家電配置與售后服務合同4篇
- 二零二五版房屋互換及增值服務協(xié)議范本3篇
- 2025年私立學校新生試讀協(xié)議書(音樂特色教育)標準文本3篇
- 二零二五版新型城鎮(zhèn)化項目合同保修與跟進管理3篇
- 二零二五年度風景名勝區(qū)植被保護與養(yǎng)護合同4篇
- 二零二五年生物制藥技術合作保密及成果分享協(xié)議3篇
- 二零二五版跨境電商合伙經(jīng)營服務合同下載3篇
- 2025年度航空航天鋁合金材料供應協(xié)議3篇
- 2025年度新能源汽車銷售與充電設施運營管理協(xié)議4篇
- 二零二五年度生態(tài)農業(yè)合作項目履約擔保合同正文本4篇
- 人教版小學數(shù)學(2024)一年級下冊第一單元 認識平面圖形綜合素養(yǎng)測評 B卷(含答案)
- 企業(yè)年會攝影服務合同
- 電商運營管理制度
- 二零二五年度一手房購房協(xié)議書(共有產權房購房協(xié)議)3篇
- 2025年上半年上半年重慶三峽融資擔保集團股份限公司招聘6人易考易錯模擬試題(共500題)試卷后附參考答案
- 城市公共交通運營協(xié)議
- 內燃副司機晉升司機理論知識考試題及答案
- 2024北京東城初二(上)期末語文試卷及答案
- 2024設計院與職工勞動合同書樣本
- 2024年貴州公務員考試申論試題(B卷)
- 電工高級工練習題庫(附參考答案)
評論
0/150
提交評論