yxhxj2006

          常用鏈接

          統計

          最新評論

          Spring,hibernate,struts的面試筆試題(含答案)

          發表時間:2012-06-08 13:10:03樓主  引用 

          Hibernate工作原理及為什么要用? 
          原理: 
          1.讀取并解析配置文件 
          2.讀取并解析映射信息,創建SessionFactory 
          3.打開Sesssion 
          4.創建事務Transation 
          5.持久化操作 
          6.提交事務 
          7.關閉Session 
          8.關閉SesstionFactory 

          為什么要用: 
          1. 對JDBC訪問數據庫的代碼做了封裝,大大簡化了數據訪問層繁瑣的重復性代碼。 

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

          3. hibernate使用Java反射機制,而不是字節碼增強程序來實現透明性。 

          4. hibernate的性能非常好,因為它是個輕量級框架。映射的靈活性很出色。它支持各種關系數據庫,從一對一到多對多的各種復雜關系。 

          2. Hibernate是如何延遲加載? 
          1. Hibernate2延遲加載實現:a)實體對象 b)集合(Collection) 

          2. Hibernate3 提供了屬性的延遲加載功能 

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

          3.Hibernate中怎樣實現類之間的關系?(如:一對多、多對多的關系) 

          類與類之間的關系主要體現在表與表之間的關系進行操作,它們都市對對象進行操作,我們程序中把所有的表與類都映射在一起,它們通過配置文件中的many-to-one、one-to-many、many-to-many、 

          4. 說下Hibernate的緩存機制 

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

          2. 二級緩存: 
          a) 應用及緩存 
          b) 分布式緩存 
          條件:數據不會被第三方修改、數據大小在可接受范圍、數據更新頻率低、同一數據被系統頻繁使用、非 關鍵數據 
          c) 第三方緩存的實現 

          5. Hibernate的查詢方式 
          Sql、Criteria,object comptosition 
          Hql: 
          1、 屬性查詢 
          2、 參數查詢、命名參數查詢 
          3、 關聯查詢 
          4、 分頁查詢 
          5、 統計函數 

          6. 如何優化Hibernate? 
          1.使用雙向一對多關聯,不使用單向一對多 
          2.靈活使用單向一對多關聯 
          3.不用一對一,用多對一取代 
          4.配置對象緩存,不使用集合緩存 
          5.一對多集合使用Bag,多對多集合使用Set 
          6. 繼承類使用顯式多態 
          7. 表字段要少,表關聯不要怕多,有二級緩存撐腰 

          7. Struts工作機制?為什么要使用Struts? 
          工作機制: 
          Struts的工作流程: 
          在web應用啟動時就會加載初始化ActionServlet,ActionServlet從 
          struts-config.xml文件中讀取配置信息,把它們存放到各種配置對象 
          當ActionServlet接收到一個客戶請求時,將執行如下流程. 
          -(1)檢索和用戶請求匹配的ActionMapping實例,如果不存在,就返回請求路徑無效信息; 
          -(2)如果ActionForm實例不存在,就創建一個ActionForm對象,把客戶提交的表單數據保存到ActionForm對象中; 
          -(3)根據配置信息決定是否需要表單驗證.如果需要驗證,就調用ActionForm的validate()方法; 
          -(4)如果ActionForm的validate()方法返回null或返回一個不包含ActionMessage的ActuibErrors對象, 就表示表單驗證成功; 
          -(5)ActionServlet根據ActionMapping所包含的映射信息決定將請求轉發給哪個Action,如果相應的 Action實例不存在,就先創建這個實例,然后調用Action的execute()方法; 
          -(6)Action的execute()方法返回一個ActionForward對象,ActionServlet在把客戶請求轉發給 ActionForward對象指向的JSP組件; 
          -(7)ActionForward對象指向JSP組件生成動態網頁,返回給客戶; 

          為什么要用: 
          JSP、Servlet、JavaBean技術的出現給我們構建強大的企業應用系統提供了可能。但用這些技術構建的系統非常的繁亂,所以在此之上,我們需要一個規則、一個把這些技術組織起來的規則,這就是框架,Struts便應運而生。 

          基于Struts開發的應用由3類組件構成:控制器組件、模型組件、視圖組件 

          8. Struts的validate框架是如何驗證的? 
          在struts配置文件中配置具體的錯誤提示,再在FormBean中的validate()方法具體調用。 

          9. 說下Struts的設計模式 
          MVC 模式: web應用程序啟動時就會加載并初始化ActionServler。用戶提交表單時,一個配置好的ActionForm對象被創建,并被填入表單相應的數 據,ActionServler根據Struts-config.xml文件配置好的設置決定是否需要表單驗證,如果需要就調用ActionForm的 Validate()驗證后選擇將請求發送到哪個Action,如果Action不存在,ActionServlet會先創建這個對象,然后調用 Action的execute()方法。Execute()從ActionForm對象中獲取數據,完成業務邏輯,返回一個ActionForward對 象,ActionServlet再把客戶請求轉發給ActionForward對象指定的jsp組件,ActionForward對象指定的jsp生成動 態的網頁,返回給客戶。 

          10. spring工作機制及為什么要用? 
          1.spring mvc請所有的請求都提交給DispatcherServlet,它會委托應用系統的其他模塊負責負責對請求進行真正的處理工作。 
          2.DispatcherServlet查詢一個或多個HandlerMapping,找到處理請求的Controller. 
          3.DispatcherServlet請請求提交到目標Controller 
          4.Controller進行業務邏輯處理后,會返回一個ModelAndView 
          5.Dispathcher查詢一個或多個ViewResolver視圖解析器,找到ModelAndView對象指定的視圖對象 
          6.視圖對象負責渲染返回給客戶端。 

          為什么用: 
          {AOP 讓開發人員可以創建非行為性的關注點,稱為橫切關注點,并將它們插入到應用程序代碼中。使用 AOP 后,公共服務 (比 如日志、持久性、事務等)就可以分解成方面并應用到域對象上,同時不會增加域對象的對象模型的復雜性。 
          IOC 允許創建一個可以構造對象的應用環境,然后向這些對象傳遞它們的協作對象。正如單詞 倒置 所表明的,IOC 就像反 過來的 JNDI。沒有使用一堆抽象工廠、服務定位器、單元素(singleton)和直接構造(straight construction),每一個對象都是用其協作對象構造的。因此是由容器管理協作對象(collaborator)。 
          Spring即使一個AOP框架,也是一IOC容器。 Spring 最好的地方是它有助于您替換對象。有了 Spring,只要用 JavaBean 屬性和配置文件加入依賴性(協作對象)。然后可以很容易地在需要時替換具有類似接口的協作對象。} 

          posted on 2012-09-20 00:51 奮斗成就男人 閱讀(201) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 汉中市| 于田县| 西充县| 陆良县| 临沧市| 确山县| 泰和县| 泸西县| 商都县| 武隆县| 宁化县| 华宁县| 萨嘎县| 彩票| 马鞍山市| 贵州省| 顺义区| 平陆县| 新晃| 白水县| 乐昌市| 安徽省| 襄樊市| 弋阳县| 额尔古纳市| 肥西县| 石柱| 重庆市| 文成县| 石家庄市| 永昌县| 鲁甸县| 惠来县| 保亭| 民权县| 巨鹿县| 泽州县| 虹口区| 泗水县| 忻城县| 贺州市|