*定义类、接口、方法时,同时声明一个或者多个类型变量(如:<E>),称为泛型类、泛型接口、泛型方法,他们统称为泛型
*作用:泛型提供了在编译阶段结束所能操作的数据类型,并自动进行检查的能力。这样可以避免强制类型转换,及其可能出现的异常。
*泛型本质:把具体的数据类型作为参数传给类型变量
泛型方法
“?”为通配符,在使用泛型的时候可以代表一切类型 ?extends Car(上限):?能接收的必须是Car或者其子类 ?super Car(下限):?能接收的必须是Car或者其父类
1.泛型是工作在编译阶段的,一旦程序编译成class文件,class文件中就不存在泛型了,这就是泛型擦除
2.泛型不支持基本数据类型,只支持对象类型(引用数据类型)