要習(xí)慣于用泛代替原生類型_第1頁(yè)
要習(xí)慣于用泛代替原生類型_第2頁(yè)
要習(xí)慣于用泛代替原生類型_第3頁(yè)
要習(xí)慣于用泛代替原生類型_第4頁(yè)
要習(xí)慣于用泛代替原生類型_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

作者:顏廷吉《Java代碼與架構(gòu)之完美優(yōu)化——實(shí)戰(zhàn)經(jīng)典》第三章代碼質(zhì)量?jī)?yōu)化通用準(zhǔn)則——3.20要習(xí)慣于用泛型代替原生類型(20/77)目錄

Contents@2、現(xiàn)象類別與現(xiàn)象描述是什么?@1、優(yōu)化前代碼有哪些瑕疵?@3、有哪些不利影響?@4、有哪些檢測(cè)工具與方法?@5、最佳解決方案是什么?@6、如何解析優(yōu)化后代碼?1、優(yōu)化前代碼有哪些瑕疵?■優(yōu)化前代碼實(shí)例1動(dòng)動(dòng)腦筋:本例代碼中有哪些瑕疵,應(yīng)該如何優(yōu)化?2、現(xiàn)象類別與現(xiàn)象描述是什么?■現(xiàn)象類別

泛型■現(xiàn)象描述Java中,數(shù)據(jù)類型分為原生類型(或叫基本數(shù)據(jù)類型、普通類型)和引用(參數(shù))數(shù)據(jù)類型。原生類型就是一個(gè)沒(méi)有任何類型參數(shù)的泛型類或泛型接口的類型。例如,List<String>是一個(gè)參數(shù)化的類型,List<E>是一個(gè)泛型接口,而List就是一個(gè)原生類型。慣用原生類型就是編程時(shí)不偏向使用泛型技術(shù)。3、有哪些不利影響?■不利影響分析

用原生類型降低了程序的可讀性,同時(shí)推遲了潛在Bug的發(fā)現(xiàn)時(shí)機(jī)。4、有哪些檢測(cè)工具與方法?■檢測(cè)工具或方法

1.(EC)TypeSafety5、最佳解決方案是什么?(1/3)■最佳解決方案

泛型是Java5之后引進(jìn)的新技術(shù),其本質(zhì)是參數(shù)化類型,也就是說(shuō)所操作的數(shù)據(jù)類型被指定為一個(gè)參數(shù)。5、最佳解決方案是什么?(2/3)■最佳解決方案

在Java中,泛型是在編譯器中實(shí)現(xiàn)的,而不是在虛擬機(jī)中實(shí)現(xiàn)的,虛擬機(jī)對(duì)泛型一無(wú)所知。因此,編譯器一定要把泛型類修改為普通類,才能夠在虛擬機(jī)中執(zhí)行。在Java中,這種技術(shù)稱之為“擦除”,也就是用Object類型替換泛型。泛型代碼經(jīng)過(guò)擦除后就變成原生形式。5、最佳解決方案是什么?(3/3)■最佳解決方案泛型的主要目標(biāo)是提高

Java

程序的類型安全,通過(guò)使用泛型定義的變量的類型限制,編譯器可以在編譯期間驗(yàn)證類型。將類型檢查從運(yùn)行時(shí)挪到編譯時(shí)有助于更早,更容易地找到錯(cuò)誤,并可提高程序的可靠性。另外,泛型還可以提高潛在的性能收益。泛型為較大的優(yōu)化帶來(lái)可能。在泛型的初始實(shí)現(xiàn)中,編譯器將強(qiáng)制類型轉(zhuǎn)換(沒(méi)有泛型的話,程序員會(huì)指定這些強(qiáng)制類型轉(zhuǎn)換)插入生成的字節(jié)碼中。但是更多類型信息可用于編譯器這一事實(shí),為JVM的優(yōu)化帶來(lái)可能。雖然沒(méi)有泛型程序一樣可以寫,但是泛型技術(shù)的引入,大大提高代碼的安全性和簡(jiǎn)潔性,因此一定要靈活運(yùn)用泛型技術(shù)。6、如何解析優(yōu)化后代碼?■優(yōu)化后代碼解析

可以看到,使用泛型之后,獲取對(duì)象時(shí)省去了強(qiáng)制類型轉(zhuǎn)換,而且代碼清晰,編譯時(shí)就進(jìn)行類型檢查。

優(yōu)化后的代碼里,<T>聲明了一個(gè)泛型類,這個(gè)T沒(méi)有任何限制,實(shí)際上相當(dāng)于Object類型,既class

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論