泛型的好处就是:省去了强制转换,可以在编译时候检查类型安全,可以用在类,方法,接口上。
    使用大写字母 A,B,C,D…X,Y,Z 定义的,就都是泛型,把 T 换成 A 也一样,这里 T 只是名字上的意义而已

    ? 表示不确定的 java 类型
    T (type) 表示具体的一个 java 类型
    K V (key value) 分别代表 java 键值中的 Key Value
    E (element) 代表 Element

    泛型的限定:
    ? extends E: 接收 E 类型或者 E 的子类型。
    ? super E: 接收 E 类型或者 E 的父类型

    1)E,T,K,V 等表示固定泛型类型参数需要声明,而通配符? 不需要定义可以直接使用,表示泛型的类型参数。