1、SpringMVC的原理以及返回數(shù)據(jù)如何渲染到j(luò)sp/html上?
答:SpringMVC的核心就是DispatcherServlet,一個請求經(jīng)過DispatcherServlet,轉(zhuǎn)發(fā)給HandlerMapping,然后經(jīng)反射,對應Controller及其里面方法的@RequestMapping地址,最后經(jīng)ModelAndView和ViewResoler返回給對應視圖。
2、一個類對象屬性發(fā)生改變時,如何讓調(diào)用者知道?
答:,即在set方法改變屬性時,觸發(fā),這種模式也可以理解為觀察者模式
3、重寫equals為何要重寫hashCode?
答:判斷兩個對象是否相等,比較的就是其hashCode,如果你重載了equals,比如說是基于對象的內(nèi)容實現(xiàn)的,而保留hashCode的實現(xiàn)不變,那么很可能某兩個對象明明是“相等”,而hashCode卻不一樣。hashcode不一樣,就無法認定兩個對象相等了
4、談談你對JVM的理解?
答:Java語言的一個非常重要的特點就是與平臺的無關(guān)性。而使用Java虛擬機是實現(xiàn)這一特點的關(guān)鍵。Java編譯器只要面向JVM,生成JVM能理解的代碼或字節(jié)碼文件。Java源文件經(jīng)編譯成字節(jié)碼程序,通過JVM將每一條指令翻譯成不同平臺機器碼,通過特定平臺運行。
JVM執(zhí)行程序的過程:I.加載。class文件,II.管理并分配內(nèi)存,III.執(zhí)行垃圾收集
JRE(java運行時環(huán)境)由JVM構(gòu)造的java程序的運行環(huán)境
5、Mysql的事物隔離級別?
答:Mysql的事物隔離級別其實跟Spring的事物隔離級別一樣,都是1、ReadUncommitted(讀取未提交內(nèi)容),2、ReadCommitted(讀取提交內(nèi)容),3、RepeatableRead(可重讀),4、Serializable(可串行化)
6、Spring的原理
答:Spring的核心是IOC和AOP,IOC是依賴注入和控制反轉(zhuǎn),其注入方式可分為set注入、構(gòu)造器注入、接口注入等等。IOC就是一個容器,負責實例化、定位、配置應用程序中的對象及建立這些對象間的依賴。簡單理解就是:JAVA每個業(yè)務邏輯處理至少需要兩個或者以上的對象協(xié)作進行工作,但是每個對象在使用它的合作對象的時候,都需要頻繁的new對象來實現(xiàn),你就會發(fā)現(xiàn),對象間的耦合度高了。而IOC的思想是:Spring容器來管理這些,對象只需要處理本身業(yè)務關(guān)系就好了。至于什么是控制反轉(zhuǎn),就是獲得依賴對象的方式反轉(zhuǎn)了。
AOP呢,面向切面編程,最直接的體現(xiàn)就是Spring事物管理。至于Spring事物的相關(guān)資料,就不細說了
7、談談你對NIO的理解
答:IO是面向流,NIO是面向緩沖,這里不細講了,具體參照:
8、ArrayList和linkedList、Vector的區(qū)別?
答:總得來說可以理解為:.
1.ArrayList是實現(xiàn)了基于動態(tài)數(shù)組的數(shù)據(jù)結(jié)構(gòu),linkedList基于鏈表的數(shù)據(jù)結(jié)構(gòu)。
2.對于隨機訪問get和set,ArrayList覺得優(yōu)于linkedList,因為linkedList要移動指針。
3.對于新增和刪除操作add和remove,LinedList比較占優(yōu)勢,因為ArrayList要移動數(shù)據(jù)
Vector和ArrayList類似,但屬于強同步類,即線程安全的
9、隨便說說幾個單例模式,并選擇一種線程安全的
答:單例的類別:懶漢、餓漢、枚舉、靜態(tài)內(nèi)部類、雙重校驗鎖等等,選擇線程安全我選最后一種,雙重校驗鎖。
10、談談紅黑樹
答:算法和數(shù)據(jù)結(jié)構(gòu)一直是我薄弱之處,這方面說自己補吧,成效不大
以上就是天津卓眾教育Java培訓機構(gòu)小編介紹的“Java高級工程師面試題及答案”的內(nèi)容,希望對大家有幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務。