<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    yxhxj2006

    常用鏈接

    統(tǒng)計

    最新評論

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

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

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

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

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

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

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

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

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

    當(dāng)Hibernate在查詢數(shù)據(jù)的時候,數(shù)據(jù)并沒有存在與內(nèi)存中,當(dāng)程序真正對數(shù)據(jù)的操作時,對象才存在與內(nèi)存中,就實現(xiàn)了延遲加載,他節(jié)省了服務(wù)器的內(nèi)存開銷,從而提高了服務(wù)器的性能。 

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

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

    4. 說下Hibernate的緩存機制 

    1. 內(nèi)部緩存存在Hibernate中又叫一級緩存,屬于應(yīng)用事物級緩存 

    2. 二級緩存: 
    a) 應(yīng)用及緩存 
    b) 分布式緩存 
    條件:數(shù)據(jù)不會被第三方修改、數(shù)據(jù)大小在可接受范圍、數(shù)據(jù)更新頻率低、同一數(shù)據(jù)被系統(tǒng)頻繁使用、非 關(guān)鍵數(shù)據(jù) 
    c) 第三方緩存的實現(xiàn) 

    5. Hibernate的查詢方式 
    Sql、Criteria,object comptosition 
    Hql: 
    1、 屬性查詢 
    2、 參數(shù)查詢、命名參數(shù)查詢 
    3、 關(guān)聯(lián)查詢 
    4、 分頁查詢 
    5、 統(tǒng)計函數(shù) 

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

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

    為什么要用: 
    JSP、Servlet、JavaBean技術(shù)的出現(xiàn)給我們構(gòu)建強大的企業(yè)應(yīng)用系統(tǒng)提供了可能。但用這些技術(shù)構(gòu)建的系統(tǒng)非常的繁亂,所以在此之上,我們需要一個規(guī)則、一個把這些技術(shù)組織起來的規(guī)則,這就是框架,Struts便應(yīng)運而生。 

    基于Struts開發(fā)的應(yīng)用由3類組件構(gòu)成:控制器組件、模型組件、視圖組件 

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

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

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

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

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


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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲av成人无码久久精品| 免费二级毛片免费完整视频| 亚洲国产精品无码中文字| 西西人体大胆免费视频| 免费国产不卡午夜福在线| 国产午夜亚洲精品不卡免下载| 免费高清在线影片一区| 亚洲码欧美码一区二区三区| 午夜网站免费版在线观看| 精品国产日韩亚洲一区在线| 国产成人无码免费视频97| 手机永久免费的AV在线电影网| 国产一区二区三区免费视频| 国产成人va亚洲电影| 亚洲人AV永久一区二区三区久久| eeuss在线兵区免费观看| 亚洲午夜无码久久久久| 国产精品免费大片| 亚洲免费福利视频| 免费精品国产自产拍观看| 一级毛片免费在线观看网站| 亚洲Av综合色区无码专区桃色| 18禁男女爽爽爽午夜网站免费| 亚洲免费中文字幕| 日韩免费一级毛片| yellow免费网站| 亚洲高清日韩精品第一区| 在线看片人成视频免费无遮挡| 一本久久免费视频| 亚洲尹人九九大色香蕉网站| 最近免费中文字幕视频高清在线看| 99亚洲男女激情在线观看| 亚洲精品无码国产| 国产一卡2卡3卡4卡无卡免费视频 国产一卡二卡3卡四卡免费 | 国产成人精品无码免费看| 亚洲精品视频免费在线观看| 高清国语自产拍免费视频国产| 中文日本免费高清| 亚洲an日韩专区在线| 337p日本欧洲亚洲大胆裸体艺术| 91精品免费在线观看|