根据官方解释,原文章我在oracle官网打开显示404
E - Element
集合中使用,比如List<E>
T-Type
声明是类型持有者的名称,比如定义一个泛型dao,可以用BaseDao<T>
K-Key,V-Value
用在键值匹配,比如Map<K,V>
N-Number
这个我没用过
?
表示不确定,比如List 同 List<?>其实是一样的,指的就是java的所有对象
泛型用A、B、E、T来表示,仅仅只是个代号,看个人的命名习惯,并没有本质的区别,只是遵循官方的方便读懂与理解。
泛型的好处
1、类型安全。 泛型的主要目标是提高 Java 程序的类型安全。通过知道使用泛型定义的变量的类型限制
2、消除强制类型转换。 泛型的一个附带好处是,消除源代码中的许多强制类型转换。这使得代码更加可读,并且减少了出错机会。
3、潜在的性能收益。 泛型为较大的优化带来可能。在泛型的初始实现中,编译器将强制类型转换(没有泛型的话,程序员会指定这些强制类型转换)插入生成的字节码中。但是更多类型信息可用于编译器这一事实,为未来版本的 JVM 的优化带来可能。由于泛型的实现方式,支持泛型(几乎)不需要 JVM 或类文件更改。所有工作都在编译器中完成,编译器生成类似于没有泛型(和强制类型转换)时所写的代码,只是更能确保类型安全而已。
使用泛型最大的好处直接的好处就是再也看不到黄色的提示,再也不需要加@SuppressWarnings("unchecked")了