定义类、接口、方法时,同时声明了一个或者多个类型变量(如:<E>) 称为泛型类、泛型接口,泛型方法、它们统称为泛型。

作用:泛型提供了在编译阶段约束所能操作的数据类型,并自动进行检查的能力! 这样可以避免强制类型转换,及其可能出现的异常
泛型的本质:把具体的数据类型作为参数传给类型变量。
泛型类


注意:类型变量建议用大写的英文字母,常用的有:E、T、K、V 等
泛型接口


注意:类型变量建议用大写的英文字母,常用的有:E、T、K、V 等
泛型方法



实例运用


通配符
就是 "?" ,可以在"使用泛型"的时候代表一切类型; E T K V 是在定义泛型的时候使用。

上下限
泛型上限: ? extends Car: ? 能接收的必须是Car或者其子类 。
泛型下限: ? super Car : ? 能接收的必须是Car或者其父类。
泛型支持的类型

为什么要有包装类,包装类有哪些?
为了万物皆对象,并且泛型和集合都不支持基本类型,支持包装类
8种,int -> Integer , char -> Character,其他的都是首字母大写
包装类提供了哪些常用的功能?
可以把基本类型的数据转换成字符串类型。
可以把字符串类型的数值转换成真实的数据类型。