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 動態代理類,因此也被稱為執行時增強。
本文來自千鋒教育,轉載請註明出處。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31548651/viewspace-2787067/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Java 面試寶典Java面試
- Java面試寶典之—-java基礎(含答案)Java面試
- Java面試葵花寶典Java面試
- JAVA程式設計師面試之《葵花寶典》等Java程式設計師面試
- Java面試寶典-2017Java面試
- 【JAVA面試資料】程式設計師面試之葵花寶典1Java面試程式設計師
- 【JAVA面試資料】程式設計師面試之葵花寶典2Java面試程式設計師
- 面試寶典面試
- PHP面試寶典PHP面試
- iOS 面試寶典iOS面試
- Java面試寶典2010版Java面試
- C++面試寶典C++面試
- Python面試寶典之基礎篇-05Python面試
- Java初中級程式設計師面試題寶典Java程式設計師面試題
- Java面試寶典2010(一.51—83)Java面試
- Oracle面試寶典-鎖篇Oracle面試
- Oracle 面試寶典-RAC篇Oracle面試
- Oracle 面試寶典-UNDO篇Oracle面試
- Oracle 面試寶典-DG篇Oracle面試
- 好程式設計師Java教程之Java面試寶典Java IO篇程式設計師Java面試
- Oracle面試寶典-等待事件篇Oracle面試事件
- Oracle面試寶典-引數篇Oracle面試
- Oracle面試寶典-事務篇Oracle面試
- 大資料面試寶典五大資料面試
- Redis面試寶典-持久化篇Redis面試持久化
- MySQL面試寶典-檔案篇MySql面試
- Web前端面試寶典(最新)Web前端面試
- FAQ寶典之RancherServerServer
- Java面試之技術框架Java面試框架
- 傳智播客PHP面試題寶典開放下載PHP面試題
- Android 面試開源框架篇Android面試框架
- Oracle面試寶典-程式結構篇Oracle面試
- MySQL 避坑寶典 -- 來自小米的開源工具MySql開源工具
- 面試必備 之 Java 集合框架面試Java框架
- 好程式設計師java分享Java面試寶典:類的載入過程程式設計師Java面試
- JAVA葵花寶典(基礎版)Java
- MySQL面試寶典-主從複製篇MySql面試
- android程式設計師面試寶典Android程式設計師面試