Java高級(jí)工程師面試題及答案

Java高級(jí)工程師面試題及答案

天津卓眾教育      2022-05-04 17:49:01     84

Java高級(jí)工程師面試題及答案,  1、SpringMVC的原理以及返回?cái)?shù)據(jù)如何渲染到j(luò)sp/html上?  答:SpringMVC的核心就是DispatcherServlet,一個(gè)請(qǐng)求經(jīng)過Dispat

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

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

詳細(xì)介紹


  1、SpringMVC的原理以及返回?cái)?shù)據(jù)如何渲染到j(luò)sp/html上?


  答:SpringMVC的核心就是DispatcherServlet,一個(gè)請(qǐng)求經(jīng)過DispatcherServlet,轉(zhuǎn)發(fā)給HandlerMapping,然后經(jīng)反射,對(duì)應(yīng)Controller及其里面方法的@RequestMapping地址,最后經(jīng)ModelAndView和ViewResoler返回給對(duì)應(yīng)視圖。


  2、一個(gè)類對(duì)象屬性發(fā)生改變時(shí),如何讓調(diào)用者知道?


  答:,即在set方法改變屬性時(shí),觸發(fā),這種模式也可以理解為觀察者模式


  3、重寫equals為何要重寫hashCode?


  答:判斷兩個(gè)對(duì)象是否相等,比較的就是其hashCode,如果你重載了equals,比如說是基于對(duì)象的內(nèi)容實(shí)現(xiàn)的,而保留hashCode的實(shí)現(xiàn)不變,那么很可能某兩個(gè)對(duì)象明明是“相等”,而hashCode卻不一樣。hashcode不一樣,就無法認(rèn)定兩個(gè)對(duì)象相等了


  4、談?wù)勀銓?duì)JVM的理解?


  答:Java語言的一個(gè)非常重要的特點(diǎn)就是與平臺(tái)的無關(guān)性。而使用Java虛擬機(jī)是實(shí)現(xiàn)這一特點(diǎn)的關(guān)鍵。Java編譯器只要面向JVM,生成JVM能理解的代碼或字節(jié)碼文件。Java源文件經(jīng)編譯成字節(jié)碼程序,通過JVM將每一條指令翻譯成不同平臺(tái)機(jī)器碼,通過特定平臺(tái)運(yùn)行。


  JVM執(zhí)行程序的過程:I.加載。class文件,II.管理并分配內(nèi)存,III.執(zhí)行垃圾收集


  JRE(java運(yùn)行時(shí)環(huán)境)由JVM構(gòu)造的java程序的運(yùn)行環(huán)境


  5、Mysql的事物隔離級(jí)別?


  答:Mysql的事物隔離級(jí)別其實(shí)跟Spring的事物隔離級(jí)別一樣,都是1、ReadUncommitted(讀取未提交內(nèi)容),2、ReadCommitted(讀取提交內(nèi)容),3、RepeatableRead(可重讀),4、Serializable(可串行化)


  6、Spring的原理


  答:Spring的核心是IOC和AOP,IOC是依賴注入和控制反轉(zhuǎn),其注入方式可分為set注入、構(gòu)造器注入、接口注入等等。IOC就是一個(gè)容器,負(fù)責(zé)實(shí)例化、定位、配置應(yīng)用程序中的對(duì)象及建立這些對(duì)象間的依賴。簡單理解就是:JAVA每個(gè)業(yè)務(wù)邏輯處理至少需要兩個(gè)或者以上的對(duì)象協(xié)作進(jìn)行工作,但是每個(gè)對(duì)象在使用它的合作對(duì)象的時(shí)候,都需要頻繁的new對(duì)象來實(shí)現(xiàn),你就會(huì)發(fā)現(xiàn),對(duì)象間的耦合度高了。而IOC的思想是:Spring容器來管理這些,對(duì)象只需要處理本身業(yè)務(wù)關(guān)系就好了。至于什么是控制反轉(zhuǎn),就是獲得依賴對(duì)象的方式反轉(zhuǎn)了。


  AOP呢,面向切面編程,最直接的體現(xiàn)就是Spring事物管理。至于Spring事物的相關(guān)資料,就不細(xì)說了


  7、談?wù)勀銓?duì)NIO的理解


  答:IO是面向流,NIO是面向緩沖,這里不細(xì)講了,具體參照:


  8、ArrayList和linkedList、Vector的區(qū)別?


  答:總得來說可以理解為:.


  1.ArrayList是實(shí)現(xiàn)了基于動(dòng)態(tài)數(shù)組的數(shù)據(jù)結(jié)構(gòu),linkedList基于鏈表的數(shù)據(jù)結(jié)構(gòu)。


  2.對(duì)于隨機(jī)訪問get和set,ArrayList覺得優(yōu)于linkedList,因?yàn)閘inkedList要移動(dòng)指針。


  3.對(duì)于新增和刪除操作add和remove,LinedList比較占優(yōu)勢,因?yàn)锳rrayList要移動(dòng)數(shù)據(jù)


  Vector和ArrayList類似,但屬于強(qiáng)同步類,即線程安全的


  9、隨便說說幾個(gè)單例模式,并選擇一種線程安全的


  答:單例的類別:懶漢、餓漢、枚舉、靜態(tài)內(nèi)部類、雙重校驗(yàn)鎖等等,選擇線程安全我選最后一種,雙重校驗(yàn)鎖。


  10、談?wù)劶t黑樹


  答:算法和數(shù)據(jù)結(jié)構(gòu)一直是我薄弱之處,這方面說自己補(bǔ)吧,成效不大



      以上就是天津卓眾教育Java培訓(xùn)機(jī)構(gòu)小編介紹的“Java高級(jí)工程師面試題及答案”的內(nèi)容,希望對(duì)大家有幫助,如有疑問,請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。


Java面試題及答案 Java筆試題

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