Java面试宝典之开源框架!
Java人才需求怎么樣?Java開源框架面試有哪些?Java開發已然成為很多程序員都追求的編程語言,目前Java開發人才的需求非常大,待遇也是相當不錯。無論是因為興趣還是因為就業,學習Java編程都是一個非常好的選擇。下面就給大家分享一些Java面試寶典之開源框架。
1. hibernate和mybatis的區別?
相同點:
1)都屬于ORM框架
2)都是對jdbc的包裝
3)都屬于持久層的框架
不同點:
1)hibernate是面向對象的,mybatis是面向sql的;
2)hibernate全自動的orm,mybatis是半自動的orm;
3)hibernate查詢映射實體對象必須全字段查詢,mybatis可以不用;
4)hibernate級聯操作,mybatis則沒有;
5)hibernate編寫hql查詢數據庫大大降低了對象和數據庫的耦合性,mybatis提供動態sql,需要手寫sql,與數據庫之間的耦合度取決于程序員所寫的sql的方法,所以hibernate的移植性要遠大于mybatis。
6)hibernate有方言夸數據庫,mybatis依賴于具體的數據庫。
7)hibernate擁有完整的日志系統,mybatis則相對比較欠缺。
2. MyBatis的優點?
1、基于SQL語句編程,相當靈活,不會對應用程序或者數據庫的現有設計造成任何影響,SQL寫在XML里,解除sql與程序代碼的耦合,便于統一管理;提供XML標簽,支持編寫動態SQL語句,并可重用。
2、與JDBC相比,減少了50%以上的代碼量,消除了JDBC大量冗余的代碼,不需要手動開關連接;
3、很好的與各種數據庫兼容(因為MyBatis使用JDBC來連接數據庫,所以只要JDBC支持的數據庫MyBatis都支持)。
4、能夠與Spring很好的集成;
5、提供映射標簽,支持對象與數據庫的ORM字段關系映射;提供對象關系映射標簽,支持對象關系組件維護。
3.MyBatis框架的缺點?
(1)SQL語句的編寫工作量較大,尤其當字段多、關聯表多時,對開發人員編寫SQL語句的功底有一定要求。
(2)SQL語句依賴于數據庫,導致數據庫移植性差,不能隨意更換數據庫。
4. SpringMVC工作流程?
1、用戶發送請求至前端控制器DispatcherServlet
2、DispatcherServlet收到請求調用HandlerMapping處理器映射器。
3、處理器映射器根據請求url找到具體的處理器,生成處理器對象及處理器攔截器(如果有則生成)一并返回給DispatcherServlet。
4、DispatcherServlet通過HandlerAdapter處理器適配器調用處理器
5、執行處理器(Controller,也叫后端控制器)。
6、Controller執行完成返回ModelAndView
7、HandlerAdapter將controller執行結果ModelAndView返回給DispatcherServlet
8、DispatcherServlet將ModelAndView傳給ViewReslover視圖解析器
9、ViewReslover解析后返回具體View
10、DispatcherServlet對View進行渲染視圖(即將模型數據填充至視圖中)。
11、DispatcherServlet響應用戶
5.MyBatis框架使用的場合?
(1)MyBatis專注于SQL本身,是一個足夠靈活的DAO層解決方案。
(2)對性能的要求很高,或者需求變化較多的項目,如互聯網項目,MyBatis將是不錯的選擇。
6.Spring中beanFactory和ApplicationContext的聯系和區別?
BeanFactory是spring中較為原始的Factory,無法支持spring的許多插件,如AOP功能、Web應用等。
ApplicationContext接口是通過BeanFactory接口派生而來的,除了具備BeanFactory接口的功能外,還具備資源訪問、事件傳播、國際化消息訪問等功能。
總體區別如下:
1)使用ApplicationContext,配置bean默認配置是singleton,無論是否使用,都會被實例化。優點是預先加載,缺點是浪費內存;
2)使用BeanFactory實例化對象時,配置的bean等到使用的時候才會被實例化。優點是節約內存,缺點是速度比較慢,多用于移動設備的開發;
3)沒有特殊要求的情況下,應該使用ApplicationContext完成,ApplicationContext可以實現BeanFactory所有可實現的功能,還具備其他更多的功能。
7. SpringIOC注入的幾種方式?
構造器注入
set方法注入
接口注入
8.攔截器與過濾器的區別?
1、攔截器是基于java的反射機制的,而過濾器是基于函數回調
2、攔截器不依賴與servlet容器,過濾器依賴與servlet容器。
3、攔截器只能對action請求起作用,而過濾器則可以對幾乎所有的請求起作用。
4、攔截器可以訪問action上下文、值棧里的對象,而過濾器不能訪問。
5、在action的生命周期中,攔截器可以多次被調用,而過濾器只能在容器初始化時被調用一次
9. SpringIOC是什么?
Spring IOC 負責創建對象,管理對象(通過依賴注入(DI),裝配對象,配置對象,并且管理這些對象的整個生命周期。
10. AOP有哪些實現方式?
實現 AOP 的技術,主要分為兩大類:
靜態代理 - 指使用 AOP 框架提供的命令進行編譯,從而在編譯階段就可生成 AOP 代理類,因此也稱為編譯時增強;
編譯時編織(特殊編譯器實現)
類加載時編織(特殊的類加載器實現)。
動態代理 - 在運行時在內存中“臨時”生成 AOP 動態代理類,因此也被稱為運行時增強。
本文來自千鋒教育,轉載請注明出處。
總結
以上是生活随笔為你收集整理的Java面试宝典之开源框架!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 18个常用的JavaScript片段分享
- 下一篇: Java开发前景好,3大从业方向供你选择