javaweb經典面試題

一、hibernate是一個開放源代碼的對象關係映射框架,它對JDBC進行了很是輕量級的對象封裝,使得java程序員能夠爲所欲爲的使用對象編程思惟來操縱數據庫。java

工做原理:程序員

1.讀取並解析配置文件2.讀取並解析映射信息,建立SessionFactory 3.打開Sesssion 4.建立事務Transation 5.持久化操做6.提交事務7.關閉Session 8.關閉SesstionFactoryspring

優勢有:sql

1.對JDBC訪問數據庫的代碼作了封裝,大大簡化了數據訪問層繁瑣的重複性代碼。數據庫

  1. Hibernate是一個基於JDBC的主流持久化框架,是一個優秀的ORM實現。他很大程度的簡化DAO層的編碼工做

三、Hibernate使用Java反射機制而不是字節碼加強程序來實現透明性。編程

四、Hibernate的性能好,映射的靈活性比較出色。它支持各類關係數據庫,從一對一到多對多的各類複雜關係。緩存

二、hibernate的核心類是什麼??重要方法是什麼??服務器

Configuration、SessionFactorysession

Session以下方法Save、load、Update、Deletemvc

Queryq=CreateQuery(「from Customer where customerName=:customerName」)

beginTransaction、close、Transaction、Commit()

三、session.load()和session.get()的區別

Session.load/get方法都可以根據指定的實體類和id從數據庫讀取記錄,並返回與之對應的實體對象。其區別在於:

若是未能發現符合條件的記錄,get方法返回null,而load方法會拋出一個ObjectNotFoundException。

四、hql和sql的區別

【能夠這樣說,hibernate是面嚮對象語言與關係型數據庫之間的橋樑,他使得程序員能夠不用關心底層數據庫鏈接的代碼,而能夠專心寫業務邏輯。】

sql是面向數據庫表查詢

hql是面向對象查詢的,其form子句返回的是對象的實例。

五、hibernate與jdbc之間的區別

【能夠這樣說,hibernate是面嚮對象語言與關係型數據庫之間的橋樑,他使得程序員能夠不用關心底層數據庫鏈接的代碼,而能夠專心寫業務邏輯。】

Hibernate做爲一個O/R Mapping,比JDBC具有的優點有:

1.編程思想上,更加符合人的邏輯思惟習慣,面向對象比面向過程更加容易理解,測試和維護

2.開發維護速度上,Hibernate顯著的快,代碼量顯著小

3.經過Annotation進行數據庫的字段加密

4.對Sql不熟的菜鳥來講能夠自動調優

5.結合spring,經過聲明式事務能夠省略事務的控制,事務以橫切面形式出現

Jdbc比Hibernate具有的優點有:

1.大數據量訪問時,Jdbc的效率顯著快

2.直接操做數據庫比較靈活

六、Hibernate是如何延遲加載?

當Hibernate在查詢數據的時候,數據並無存在與內存中,當程序真正對數據的操做時,對象才存在與內存中,就實現了延遲加載,他節省了服務器的內存開銷,從而提升了服務器的性能。

七、說下Hibernate的緩存機制

1.內部緩存存在Hibernate中又叫一級緩存,屬於應用事物級緩存

2.二級緩存:

a)應用及緩存

b)分佈式緩存

c)第三方緩存的實現

八、spring工做機制及爲何要用?

【spring是一個輕量的控制反轉和麪向切面的容器框架】

1.springmvc把全部的請求都提交給DispatcherServlet,它會委託應用系統的其餘模塊負責對請求進行真正的處理工做。

2.DispatcherServlet查詢一個或多個HandlerMapping,找處處理請求的Controller.

3.DispatcherServlet把請求提交到目標Controller

4.Controller進行業務邏輯處理後,會返回一個ModelAndView

5.Dispathcher查詢一個或多個ViewResolver視圖解析器,找到ModelAndView對象指定的視圖對象

6.視圖對象負責渲染返回給客戶端。

IoC就是由容器來控制業務對象之間的依賴關係。控制反轉的本質,是控制權由應用代碼轉到了外部容器,控制器的轉移既是所謂的反轉。控制權的轉移帶來的好處就是下降了業務對象之間的依賴程度,即實現瞭解耦。

DI/IOC,對持久層和表示層的控制與分配,增長系統的靈活性和穩定性. AOP,面向切面,利用代理對程序的有效管理.

spring是一個輕量級的IOC和AOP框架,經過spring的IOC實現鬆耦合,而做爲一個AOP框架他又能分離系統服務,實現內聚開發Spring最好的地方是它有助於您替換對象。有了Spring,只要用JavaBean屬性和配置文件加入依賴性(協做對象)。而後能夠很容易地在須要時替換具備相似接口的協做對象。}

Spring對多種ORM框架提供了很好的支持

做者: 石頭人m 連接:http://www.imooc.com/article/18814 來源:慕課網
相關文章
相關標籤/搜索