我們找工作的人都會面臨一個難題,那就是面試,根據(jù)工作性質(zhì)的不同,面試的要求也會不公,好點的工作,面試官都會問我們一些問題,尤其是學術(shù)性較強的工作。那么今天我們就來說說我們學Java的求職者面試時會遇到的一些面試題及答案吧。
問題一:struts中的prepare怎么用?
答:prepare是在validate攔截器之前執(zhí)行
在使用struts2checkboxlist,select綁定list時,有時候會出現(xiàn)以下異常
Therequestedlistkey'users'couldnotberesolvedasacollection/array/map/enumeration/iteratortype.Example:peopleorpeople.{name}
-[unknownlocation]這樣的錯誤。是因為list的值為空
解決辦法是把初始化list的工作放到prepare攔截器中
publicclassRoleActionextendsActionSupportimplemen
tsPreparable{
@Override
publicvoidprepare()throwsException{
//初始化list
}}
問題二:haShtable的原理
答:原理:通過節(jié)點的關(guān)鍵碼確定節(jié)點的存儲位置,即給定節(jié)點的關(guān)鍵碼k,通過一定的函數(shù)關(guān)系H(散列函數(shù)),得到函數(shù)值H(k),將此值解釋為該節(jié)點的存儲地址
問題三:java是如何進行異常處理的Java通過面向?qū)ο蟮姆椒ㄟM行異常處理,把各種不同的異常進行分類,并提供了良好的接口。
在Java中,每個異常都是一個對象,它是Throwable類或其它子類的實例。當一個方法出現(xiàn)異常后便拋出一個異常對象,該對象中包含有異常信息,調(diào)用這個對象的方法可以捕獲到這個異常并進行處理。Java的異常處理是通過5個關(guān)鍵詞來實現(xiàn)的:try、catch、throw、throws和finally。一般情況下是用try來執(zhí)行一段程序,如果出現(xiàn)異常,系統(tǒng)會拋出(throws)一個異常,這時候你可以通過它的類型來捕捉(catch)它,或最后(finally
)由缺省處理器來處理
問題四:dao是什么及作用
dao是數(shù)據(jù)訪問對象DAO負責管理與數(shù)據(jù)源的連接來獲取和儲存其中的數(shù)據(jù)
問題五:簡述spring的事務(wù)傳播行為和隔離級別
spring的事務(wù)傳播行為:Spring在TransactionDefinition接口中規(guī)定了7種類型的事務(wù)傳播行為,它們規(guī)定了事務(wù)方法和事務(wù)方法發(fā)生嵌套調(diào)用時事務(wù)如何進行傳播:
PROPAGATION_REQUIRED:如果當前沒有事務(wù),就新建一個事務(wù),如果已經(jīng)存在一個事務(wù)中,加入到這個事務(wù)中。這是最常見的選擇。
PROPAGATION_SUPPORTS:支持當前事務(wù),如果當前沒有事務(wù),就以非事務(wù)方式執(zhí)行。
PROPAGATION_MANDATORY:使用當前的事務(wù),如果當前沒有事務(wù),就拋出異常。
PROPAGATION_REQUIRES_NEW:新建事務(wù),如果當前存在事
務(wù),把當前事務(wù)掛起。
PROPAGATION_NOT_SUPPORTED:以非事務(wù)方式執(zhí)行操作,如果當前存在事務(wù),就把當前事務(wù)掛起。
PROPAGATION_NEVER:以非事務(wù)方式執(zhí)行,如果當前存在事務(wù),則拋出異常。
PROPAGATION_NESTED:如果當前存在事務(wù),則在嵌套事務(wù)內(nèi)執(zhí)行。如果當前沒有事務(wù),則執(zhí)行與PROPAGATION_REQUIRED類似的操作。
Spring的隔離級別
1、Serializable:最嚴格的級別,事務(wù)串行執(zhí)行,資源消耗最大;
2、REPEATABLEREAD:保證了一個事務(wù)不會修改已經(jīng)由另
一個事務(wù)讀取但未提交(回滾)的數(shù)據(jù)。避免了“臟讀取”和“不可重復讀取”的情況,但是帶來了更多的性能損失。
3、READCOMMITTED:大多數(shù)主流數(shù)據(jù)庫的默認事務(wù)等級,保證了一個事務(wù)不會讀到另一個并行事務(wù)已修改但未提交的數(shù)據(jù),避免了“臟讀取”。該級別適用于大多數(shù)系統(tǒng)。
4、ReadUncommitted:保證了讀取過程中不會讀取到非法數(shù)據(jù)。
問題六:Struts2實現(xiàn)攔截器的原理?
實現(xiàn)原理:Struts2攔截器是在訪問某個Action或Action的
某個方法、字段之前或之后實施攔截,并且Struts2攔截器是可插拔的,攔截器是AOP的一種實現(xiàn)。當請求struts2的action時,Struts2會查找配置文件,并根據(jù)其配置實例化相對的攔截器對象,然后串成一個列表,最后一個一個地調(diào)用列表中的攔截器。
問題七:forward與redirect的區(qū)別?有哪些方式實現(xiàn)1).重定向后url地址欄地址不變還是原來的地址;而response.sendRedirect()重定向后url地址欄地址顯示的請求后的新地址。
2).重定向的時候可以保存回話信息,因此可以使用request來進行參數(shù)傳遞,在新頁面可以使用request.getAttribute()來得到參數(shù)。而response.sendRedirect()不支持此通過request進行參數(shù)傳遞。它唯一的傳值方式為response.sendRedirect(“example.jsp?aa=123”),在新的頁面通過request.getParameter(“aa”)來得到參數(shù)值
問題八:靜態(tài)的多態(tài)和動態(tài)的多態(tài)的區(qū)別
靜態(tài)的多態(tài):即為重載;方法名相同,參數(shù)個數(shù)或類型不相同。(overloading)
動態(tài)的多態(tài):即為重寫;子類覆蓋父類的方法,將子類的實例傳與父類的引用調(diào)用的是子類的方法實現(xiàn)接口的實例傳與接口的引用調(diào)用的實現(xiàn)類的方法。
問題九:extends和implement的不同
extends是繼承父類,只要那個類不是聲明為final或者那個類定義為abstract的就能繼承,JAVA中不支持多重繼承,但是可以用接口來實現(xiàn),這樣就要用到implements,繼承只能繼承一個類,但implements可以實現(xiàn)多個接口,用逗號分開就行了比如classAextendsBimplementsC,D,E
問題十:Hibernate中離線查詢與在線查詢的區(qū)別
Criteria和DetachedCriteria的主要區(qū)別在于創(chuàng)建的形式不一樣,Criteria是在線的,所以它是由HibernateSession進行創(chuàng)建的;而DetachedCriteria是離線的,創(chuàng)建時無需Session,DetachedCriteria提供了2個靜態(tài)方法forClass(Class)或forEntityName(Name)進行DetachedCriteria實例的創(chuàng)建。
以上就是長沙一度軟件培訓java學院小編介紹的“Java軟件工程師求職面試題總結(jié)”的內(nèi)容,希望對大家有幫助,更多java最新面試題請繼續(xù)關(guān)注長沙一度軟件培訓java學院官網(wǎng),每天會有精彩內(nèi)容分享與你。
相關(guān)java面試題推薦
最新最全java面試題及答案(從初級到高級)
史上最全的中高級JAVA工程師面試題及答案匯總
Java高級開發(fā)工程師面試題
2019史上最全java面試題題庫大全800題
哪有資深java工程師面試題