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