java基礎(chǔ)六框架部分_第1頁
java基礎(chǔ)六框架部分_第2頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、基礎(chǔ)題六Hashmap和Hashtable的區(qū)別 101.HashMap是Hashtable的輕量級實現(xiàn)(非線程安全的實現(xiàn)),他們都完成了Map接口。2.主要區(qū)別在于HashMap允許空(null)鍵值(key),由于非線程安全,在只有一個線程訪問的情況下,效率要高于Hashtable。 3.HashMap允許將null作為一個entry的key或者value,而Hashtable不允許。 4.HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因為contains方法容易讓人引起誤解。 5.Hashtable繼承自Dicti

2、onary類,而HashMap是Java1.2引進(jìn)的Map interface的一個實現(xiàn)。 6.最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多個線程訪問Hashtable時,不需要自己為它的方法實現(xiàn)同步,而HashMap 就必須為之提供外同步。 7.Hashtable和HashMap采用的hash/rehash算法都大概一樣,所以性能不會有很大的差異JDBC與Hibernate的優(yōu)缺點比較 10JDBC與Hibernate在性能上相比,JDBC靈活性有優(yōu)勢。而Hibernate在易學(xué)性,易用性上有些優(yōu)勢。當(dāng)用到很多復(fù)雜的多表聯(lián)查和復(fù)雜的數(shù)據(jù)庫操作時

3、,JDBC有優(yōu)勢。相同點:兩者都是JAVA的數(shù)據(jù)庫操作中間件。兩者對于數(shù)據(jù)庫進(jìn)行直接操作的對象都不是線程安全的,都需要及時關(guān)閉。兩者都可以對數(shù)據(jù)庫的更新操作進(jìn)行顯式的事務(wù)處理。不同點:使用的SQL語言不同:JDBC使用的是基于關(guān)系型數(shù)據(jù)庫的標(biāo)準(zhǔn)SQL語言,Hibernate使用的是HQL(Hibernate query language)語言操作的對象不同:JDBC操作的是數(shù)據(jù),將數(shù)據(jù)通過SQL語句直接傳送到數(shù)據(jù)庫中執(zhí)行,Hibernate操作的是持久化對象,由底層持久化對象的數(shù)據(jù)更新到數(shù)據(jù)庫中。數(shù)據(jù)狀態(tài)不同:JDBC操作的數(shù)據(jù)是“瞬時”的,變量的值無法與數(shù)據(jù)庫中的值保持一致,而Hiberna

4、te操作的數(shù)據(jù)是可持久的,即持久化對象的數(shù)據(jù)屬性的值是可以跟數(shù)據(jù)庫中的值保持一致的。Struts2中攔截器和一般的過濾器有哪些區(qū)別? 10Struts2中將框架的核心功能都分散到了各個攔截器中,攔截器可以根據(jù)需要自由組合,使用更加靈活。而過濾器是由web服務(wù)器servlet容器提供的,可以在web.xml中配置url規(guī)則1.攔截器是語句java的反射機(jī)制的,而過濾器是基于函數(shù)回調(diào)2.攔截器依賴于struts框架,而過濾器依賴于servlet容器3.攔截器只能對action請求起作用,而過濾器則可以對幾乎所有的請求起作用4.攔截器可以訪問action上下文、值棧里的對象,而過濾器不能5.在act

5、ion的生命周期中,攔截器可以多次被調(diào)用,而過濾器只能在容器初始化時被調(diào)用一次簡單介紹下你對MyBatis的理解?MyBatis中如何使用事務(wù)?MyBatis如何做對象關(guān)聯(lián)? 101. MyBatis是一個數(shù)據(jù)持久層(ORM)框架。把實體類和SQL語句之間建立了映射關(guān)系,是一種半自動化的ORM實現(xiàn)。需要開發(fā)人員自己來寫sql語句,程序更靈活,在一定程度上可以作為ORM的一種補(bǔ)充。數(shù)據(jù)庫移植性差。便于統(tǒng)一管理與維護(hù),降低了程序的耦合度2. Mybatis對于事務(wù)的支持不太好。需要手動開啟JDBC事務(wù)進(jìn)行事務(wù)管理。在整個請求處理之前,創(chuàng)建事務(wù)工廠,基于同一個SqlSession對象獲得事務(wù)對象,期

6、間執(zhí)行多次數(shù)據(jù)庫更新操作,最后捕捉異常,進(jìn)行事務(wù)回滾或關(guān)閉。3. Mybatis的對象關(guān)聯(lián),分成:集合、關(guān)聯(lián) 一對多,多對多統(tǒng)稱為集合。多對一,一對一統(tǒng)稱為關(guān)聯(lián)。不管是集合還是關(guān)聯(lián),都有兩種實現(xiàn)方式:嵌套查詢分別編寫兩個查詢sql,通過自定義resultMap中association或者collection標(biāo)簽的select引用,將查詢嵌套起來嵌套結(jié)果編寫聯(lián)表查詢sql,查詢出需要的多表中的數(shù)據(jù),分別通過不同的resultMap進(jìn)行映射,并在主resultMap的association或者collection標(biāo)簽的resultMap中,將結(jié)果映射嵌套起來嵌套查詢可能會出現(xiàn)1+N次查詢的問題,可

7、以通過延遲加載來盡量減少性能的影響。嵌套結(jié)果會使查詢數(shù)據(jù)過多,并且不能延遲加載。所以通常使用嵌套查詢更多些。SpringMVC和MVC的區(qū)別? 10MVC指的是一種請求處理的設(shè)計模式:M:model模型,V:view 視圖, C:controller控制器。MVC不僅實現(xiàn)了功能模塊和顯示模塊的分離,同時還提高了應(yīng)用系統(tǒng)的可維護(hù)性、可擴(kuò)展性、可移植性和組件的可重用性。MVC設(shè)計模式提出的很早,也有很多種具體的實現(xiàn)方式,例如JSP+Servlet+JavaBean,Struts1,Struts2,Spring MVC。Spring MVC就是MVC設(shè)計模式的其中一種具體實現(xiàn)。Spring MVC有前端控制器,HandlerMapping, 后端控制器,ViewResolver等幾個部分構(gòu)成。通過前端控制器DispatcherServlet接受所有處理請求,通過HandlerMapping調(diào)用請求對應(yīng)的后端控制器,處理請求,并返回邏輯視圖

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論