java程序員常見(jiàn)面試題及答案

java程序員常見(jiàn)面試題及答案

深圳達(dá)內(nèi)教育      2022-04-16 10:35:01     0

java程序員常見(jiàn)面試題及答案,  我們找工作的人都會(huì)面臨一個(gè)難題,那就是面試,根據(jù)工作性質(zhì)的不同,面試的要求也會(huì)不公,好點(diǎn)的工作,面試官都會(huì)問(wèn)我們一些

課程價(jià)格 請(qǐng)咨詢

上課時(shí)段: 授課校區(qū):

詳細(xì)介紹

  

我們找工作的人都會(huì)面臨一個(gè)難題,那就是面試,根據(jù)工作性質(zhì)的不同,面試的要求也會(huì)不公,好點(diǎn)的工作,面試官都會(huì)問(wèn)我們一些問(wèn)題,尤其是學(xué)術(shù)性較強(qiáng)的工作。下面深圳達(dá)內(nèi)教育java培訓(xùn)學(xué)校小編為大家分享java程序員常見(jiàn)面試題及答案。



  1、struts中的prepare怎么用?


  prepare是在validate攔截器之前執(zhí)行


  在使用struts2 checkboxlist,select綁定list時(shí),有時(shí)候會(huì)出現(xiàn) 以下異常


  The requested list key 'users' could not be resolved as a collection/array/map/enumeration/iterator type. Example: people or people.{name}- [unknown location]這樣的錯(cuò)誤。是因?yàn)閘ist的值為空


  解決辦法是把初始化list的工作放到prepare攔截器中


public class RoleAction extends ActionSupport implemen


  ts Preparable{


  @Override


  public void prepare() throws Exception {


  //初始化list


  } }

  


  2、haShtable的原理


  原理:通過(guò)節(jié)點(diǎn)的關(guān)鍵碼確定節(jié)點(diǎn)的存儲(chǔ)位置,即給定節(jié)點(diǎn)的關(guān)鍵碼k,通過(guò)一定的函數(shù)關(guān)系H(散列函數(shù)),得到函數(shù)值H(k),將此值解釋為該節(jié)點(diǎn)的存儲(chǔ)地址。


3、java是如何進(jìn)行異常處理的?


Java通過(guò)面向?qū)ο蟮姆椒ㄟM(jìn)行異常處理,把各種不同的異常進(jìn)行分類,并提供了良好的接口。在Java中,每個(gè)異常都是一個(gè)對(duì)象,它是Throwable類或其它子類的實(shí)例。當(dāng)一個(gè)方法出現(xiàn)異常后便拋出一個(gè)異常對(duì)象,該對(duì)象中包含有異常信息,調(diào)用這個(gè)對(duì)象的方法可以捕獲到這個(gè)異常并進(jìn)行處理。Java的異常處理是通過(guò)5個(gè)關(guān)鍵詞來(lái)實(shí)現(xiàn)的:try、catch、throw、throws和finally。一般情況下是用try來(lái)執(zhí)行一段程序,如果出現(xiàn)異常,系統(tǒng)會(huì)拋出(throws)一個(gè)異常,這時(shí)候你可以通過(guò)它的類型來(lái)捕捉(catch)它,或最后(finally)由缺省處理器來(lái)處理。


  4、dao 是什么及作用


  dao 是數(shù)據(jù)訪問(wèn)對(duì)象 DAO負(fù)責(zé)管理與數(shù)據(jù)源的連接來(lái)獲取和儲(chǔ)存其中的數(shù)據(jù)


  5、簡(jiǎn)述spring 的事務(wù)傳播行為和 隔離級(jí)別


  spring 的事務(wù)傳播行為: Spring在TransactionDefinition接口中規(guī)定了7種類型的事務(wù)傳播行為,它們規(guī)定了事務(wù)方法和事務(wù)方法發(fā)生嵌套調(diào)用時(shí)事務(wù)如何進(jìn)行傳播:


  PROPAGATION_REQUIRED:如果當(dāng)前沒(méi)有事務(wù),就新建一個(gè)事務(wù),如果已經(jīng)存在一個(gè)事務(wù)中,加入到這個(gè)事務(wù)中。這是最常見(jiàn)的選擇。


  PROPAGATION_SUPPORTS:支持當(dāng)前事務(wù),如果當(dāng)前沒(méi)有事務(wù),就以非事務(wù)方式執(zhí)行。


  PROPAGATION_MANDATORY:使用當(dāng)前的事務(wù),如果當(dāng)前沒(méi)有事務(wù),就拋出異常。


  PROPAGATION_REQUIRES_NEW:新建事務(wù),如果當(dāng)前存在事務(wù),把當(dāng)前事務(wù)掛起。


  PROPAGATION_NOT_SUPPORTED:以非事務(wù)方式執(zhí)行操作,如果當(dāng)前存在事務(wù),就把當(dāng)前事務(wù)掛起。


  PROPAGATION_NEVER:以非事務(wù)方式執(zhí)行,如果當(dāng)前存在事務(wù),則拋出異常。


  PROPAGATION_NESTED:如果當(dāng)前存在事務(wù),則在嵌套事務(wù)內(nèi)執(zhí)行。如果當(dāng)前沒(méi)有事務(wù),則執(zhí)行與PROPAGATION_REQUIRED類似的操作。


  Spring 的隔離級(jí)別


  (1)Serializable:最嚴(yán)格的級(jí)別,事務(wù)串行執(zhí)行,資源消耗最大;


 ?。?)REPEATABLE READ:保證了一個(gè)事務(wù)不會(huì)修改已經(jīng)由另一個(gè)事務(wù)讀取但未提交(回滾)的數(shù)據(jù)。避免了“臟讀取”和“不可重復(fù)讀取”的情況,但是帶來(lái)了更多的性能損失。


 ?。?)READ COMMITTED:大多數(shù)主流數(shù)據(jù)庫(kù)的默認(rèn)事務(wù)等級(jí),保證了一個(gè)事務(wù)不會(huì)讀到另一個(gè)并行事務(wù)已修改但未提交的數(shù)據(jù),避免了“臟讀取”。該級(jí)別適用于大多數(shù)系統(tǒng)。


  (4)Read Uncommitted:保證了讀取過(guò)程中不會(huì)讀取到非法數(shù)據(jù)。


  6、Struts2實(shí)現(xiàn)攔截器的原理?


  實(shí)現(xiàn)原理:Struts2攔截器是在訪問(wèn)某個(gè)Action或Action的某個(gè)方法、字段之前或之后實(shí)施攔截,并且Struts2攔截器是可插拔的,攔截器是AOP的一種實(shí)現(xiàn)。當(dāng)請(qǐng)求struts2的action時(shí),Struts 2會(huì)查找配置文件,并根據(jù)其配置實(shí)例化相對(duì)的攔截器對(duì)象,然后串成一個(gè)列表,最后一個(gè)一個(gè)地調(diào)用列表中的攔截器。


  7、forward與redirect 的區(qū)別?有哪些方式實(shí)現(xiàn)


(1)重定向后url地址欄地址不變還是原來(lái)的地址;而response.sendRedirect()重定向后url地址欄地址顯示的請(qǐng)求后的新地址。


(2)重定向的時(shí)候可以保存回話信息,因此可以使用request來(lái)進(jìn)行參數(shù)傳遞,在新頁(yè)面可以使用request.getAttribute ()來(lái)得到參數(shù)。而response.sendRedirect()不支持此通過(guò)request進(jìn)行參數(shù)傳遞。它唯一的傳值方式為response.sendRedirect(“example.jsp?aa=123”),在新的頁(yè)面通過(guò)request.getParameter(“aa”)來(lái)得到參數(shù)值


  8、靜態(tài)的多態(tài)和動(dòng)態(tài)的多態(tài)的區(qū)別


  靜態(tài)的多態(tài): 即為重載 ;方法名相同,參數(shù)個(gè)數(shù)或類型不相同。(overloading)


  動(dòng)態(tài)的多態(tài): 即為重寫(xiě);子類覆蓋父類的方法,將子類的實(shí)例傳與父類的引用調(diào)用的是子類的方法 實(shí)現(xiàn)接口的實(shí)例傳與接口的引用調(diào)用的實(shí)現(xiàn)類的方法。


  9、extends和implement的不同


  extends是繼承父類,只要那個(gè)類不是聲明為final或者那個(gè)類定義為abstract的就能繼承,JAVA中不支持多重繼承,但是可以用接口來(lái)實(shí)現(xiàn),這樣就要用到implements,繼承只能繼承一個(gè)類,但implements可以實(shí)現(xiàn)多個(gè)接口,用逗號(hào)分開(kāi)就行了 比如 class A extends B implements C,D,E


  10、Hibernate中離線查詢與在線查詢的區(qū)別


  Criteria 和 DetachedCriteria 的主要區(qū)別在于創(chuàng)建的形式不一樣, Criteria 是在線的,所以它是由 Hibernate Session 進(jìn)行創(chuàng)建的;而DetachedCriteria 是離線的,創(chuàng)建時(shí)無(wú)需 Session,DetachedCriteria 提供了 2 個(gè)靜態(tài)方法 forClass(Class) 或 forEntityName(Name) 進(jìn)行DetachedCriteria 實(shí)例的創(chuàng)建。



以上就是深圳達(dá)內(nèi)教育java培訓(xùn)學(xué)校小編分享的“java程序員常見(jiàn)面試題”的內(nèi)容,希望對(duì)大家有幫助,更多最新java面試題請(qǐng)繼續(xù)關(guān)注深圳達(dá)內(nèi)教育java培訓(xùn)機(jī)構(gòu)官網(wǎng),每天會(huì)有精彩內(nèi)容分享與你。


相關(guān)java面試題推薦


最全最新java面試題及答案(從入門(mén)到精通)


2019史上最全java面試題題庫(kù)大全800題


Java常見(jiàn)面試題匯總


2019最新java面試題含答案(基礎(chǔ)篇)


各大互聯(lián)網(wǎng)公司Java面試題匯總


Java筆試題

培訓(xùn)啦提醒您:交易時(shí)請(qǐng)核實(shí)對(duì)方資質(zhì),對(duì)于過(guò)大宣傳或承諾需謹(jǐn)慎!任何要求預(yù)付定金、匯款等方式均存在風(fēng)險(xiǎn),謹(jǐn)防上當(dāng)。