关于Java 泛型的总结
/**
* 泛型:
* 1、class MyStack<T> 此时的<T>代表是一个占位符 表示当前类是一个泛型类
* 2、 this.elem = new T[10]; 不能实例化泛型类型的数组对象
* 3、 MyStack<Integer> myStack = new MyStack<>();
* MyStack<Integer> 这里指定当前类可以存放是数据类型
* new MyStack<Integer>();
* 4、泛型的意义:
* a:可以自动进行类型的检查
* b:可以自动进行类型的转换
* 5、 MyStack<int> myStack = new MyStack<>();
* 简单类型 不能做泛型类型的参数 包装类型-》引用类型
* 6、泛型到底是怎么编译的? 擦除机制。
* 擦除为Object的意义 就是可以放任意类型的数据。
* 运行java程序的时候 是没有泛型的概念的
* 7、MyStack<Integer> stack : 泛型类型的参数 不参与类型的组成
*
* 8、泛型的上界:
* class Algorithm<T extends Comparable<T> > {}
* T:T类型 一定要实现Comparable 接口
*
* class Algorithm<E extends Animal> {}
* E:可以是Animal的子类 或者 是Animal自己类本身
*
* 9、泛型没有下界。
*
* 10、泛型方法
* public static<T> T findMaxVal(T[] array) {
*
* public static<T extends Comparable<T>> T findMaxVal(T[] array) {
*
* 11、
* * 通配符:通配符实际上也是一种泛型。一般用在源码当中居多一点。
* * 泛型一般用于读取和写入
* * 通配符一般用于读取
* *
* * 上界: ? extends E 示 传入的参数? 是下界E 的子类或者E自己本身
* * 下界:<? super E> 表示 传入的参数? 是下界E 的父类或者E自己本身
*
* 12、
* ArrayList<Integer> list ArrayList<Number> list2
* 他们直接是否构成父子类关系???
* 不是这样子
*/