一、随堂复习
1. 泛型的理解
-
<E> ,泛型参数,使用引用数据类型来赋值。
2. 泛型在集合、比较器中的使用(重点)
-
集合:ArrayList、HashMap、Iterator
-
比较器:Comparable、Comparator
3. 自定义泛型类/泛型接口、泛型方法(熟悉)
-
class Order<T>{ }
-
public <E> 返回值类型 方法名(形参列表){}
-
具体的细节,见IDEA中的笔记。
4. 泛型在继承上的体现
1. 类SuperA是类A的父类,则G<SuperA> 与 G<A>的关系:G<SuperA> 和 G<A>是并列的两个类,没有任何子父类的关系。 比如:ArrayList<Object> 、ArrayList<String>没有关系 2. 类SuperA是类A的父类或接口,SuperA<G> 与 A<G>的关系:SuperA<G> 与A<G> 有继承或实现的关系。 即A<G>的实例可以赋值给SuperA<G>类型的引用(或变量) 比如:List<String> 与 ArrayList<String>
5. 通配符的使用
-
? 的使用 (重点)
-
以集合为例:可以读取数据、不能写入数据(例外:null)
-
-
? extends A
-
以集合为例:可以读取数据、不能写入数据(例外:null)
-
-
? super A
-
以集合为例:可以读取数据、可以写入A类型或A类型子类的数据(例外:null)
-
二、企业真题
1. Java 的泛型是什么?有什么好处和优点?JDK 不同版本的泛型有什么区别?(软*动力)
泛型,是程序中出现的不确定的类型。
以集合来举例:把一个集合中的内容限制为一个特定的数据类型,这就是generic背后的核心思想。
jdk7.0新特性:
ArrayList<String> list = new ArrayList<>(); //类型推断
后续版本的新特性:
Comparator<Employee> comparator = new Comparator<>(){} //类型推断
2. 说说你对泛型的了解(*软国际)
同上