Java的泛型是JDK1.5時引入的。下面只是簡單的介紹,不做深入的分析。
Java的泛型是偽泛型。為什么說Java的泛型是偽泛型呢?因為,在編譯期間,所有的泛型信息都會被擦除掉。正確理解泛型概念的首要前提是理解類型擦出(type erasure)。
Java中的泛型基本上都是在編譯器這個層次來實現的。在生成的Java字節碼中是不包含泛型中的類型信息的。使用泛型的時候加上的類型參數,會在編譯器在編譯的時候去掉。這個過程就稱為類型擦除。
如在代碼中定義的List<Object>和List<String>等類型,在編譯后都會變成List。JVM看到的只是List,而由泛型附加的類型信息對JVM來說是不可見的。Java編譯器會在編譯時盡可能的發現可能出錯的地方,但是仍然無法避免在運行時刻出現類型轉換異常的情況。類型擦除也是Java的泛型實現方法與C++模版機制實現方式之間的重要區別。
參考:
http://blog.csdn.net/lonelyroamer/article/details/7868820(以上內容轉自此篇博客)
https://www.cnblogs.com/xltcjylove/p/3671943.html