在JDK1.5java引入了泛型: T(指java中類型)、K、V(指鍵和值Key Value)、E(Element 特性是枚舉)
泛型的本質是參數化類型,也就是說所操作的數據類型被指定為一個參數。這種參數類型可以用在類、接口和方法的創建中,分別稱為泛型類、泛型接口、泛型方法。
1、安全:java引入泛型的主要目的是為了提高java程序的類型安全。
2、消除強制類型的轉換:這也是泛型另一個好處,消除源代碼中許多強制類型的轉換。使得代碼更加可讀,並且減少了出錯機會。
(第三條是我找的資料,因為目前為止我的水平還未達到)
3、潛在的性能收益:泛型為較大的優化帶來可能。在泛型的初始實現中,編譯器將強制類型轉換(沒有泛型的話,程序員會指定這些強制類型轉換)插入生成的字節碼中。但是更多類型信息可用於編譯器這一事實,為未來版本的 JVM 的優化帶來可能。由於泛型的實現方式,支持泛型(幾乎)不需要 JVM 或類文件更改。所有工作都在編譯器中完成,編譯器生成類似於沒有泛型(和強制類型轉換)時所寫的代碼,只是更能確保類型安全而已。
泛型的規則和限制:
1、泛型的類型參數只能是類類型(包括自定義類),不能是簡單類型。
2、同一種泛型可以對應多個版本(因為參數類型是不確定的),不同版本的泛型類實例是不兼容的。
3、泛型的類型參數可以有多個。
4、泛型的參數類型可以使用extends語句
5、泛型的參數類型還可以是通配符類型