1. 程式人生 > >Java基礎知識(JAVA之泛型)

Java基礎知識(JAVA之泛型)

書寫 來源 bject tail java基礎 包括 知識 為什麽 情況下

什麽是泛型?為什麽要使用泛型?

泛型,即“參數化類型”。一提到參數,最熟悉的就是定義方法時有形參,然後調用此方法時傳遞實參。那麽參數化類型怎麽理解呢?顧名思義,就是將類型由原來的具體的類型參數化,類似於方法中的變量參數,此時類型也定義成參數形式(可以稱之為類型形參),然後在使用/調用時傳入具體的類型(類型實參)。

泛型的本質是為了參數化類型(在不創建新的類型的情況下,通過泛型指定的不同類型來控制形參具體限制的類型)。也就是說在泛型使用過程中,操作的數據類型被指定為一個參數,這種參數類型可以用在類、接口和方法中,分別被稱為泛型類、泛型接口、泛型方法。

泛型是什麽:泛型是JDK1.5之後出現的新特性。
使用泛型的目的:為了提高安全機制。(JDK升級幾乎只為了三個目的:提高效率、簡化書寫、提高安全性)
使用泛型的好處:
1.將運行時期的問題ClasscastException轉到了編譯時期。
2.避免了強制轉換的麻煩。
解惑:<>和E
<>是什麽?
就像方法中使用()來界定參數範圍,泛型使用<>界定要傳入的參數類型。
<>什麽時候用?
當操作的引用數據類型不確定的時候使用。
E是什麽?
E代表一個參數,為Element的簡寫,不使用小寫的原因就是E代表的參數類型只限於引用型數據類型,而不包括基本數據類型。
3.泛型的擦除和補償。

擦除:雖然程序員在寫代碼的時候使用了泛型,但是在JAVA編譯器生成Class文件的時候,會將泛型去掉,生成的Class文件中並沒有泛型。這稱為泛型的擦除。
補償:擦除的目的是為了兼容低版本jre,但是泛型技術中不使用強制轉換卻沒有辦法使得低版本支持,所以編譯器略作調整,它將自動獲取對象類型(使用getClass方法)並完成隱式的強轉動作。這就是泛型的補償。
4.泛型類型所能使用的方法。
一旦使用了泛型,則變量類型變得不確定,它將不能使用某個類的具體方法,但是能夠使用Object類的所有方法。


---------------------
作者:VieLei
來源:CSDN
原文:https://blog.csdn.net/s10461/article/details/53941091

版權聲明:本文為博主原創文章,轉載請附上博文鏈接!

Java基礎知識(JAVA之泛型)