java入坑之泛型

一、泛型入门

1.1基础概念

Java泛型是JDK 5中引入的一个新特性,它提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型

泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这意味着你可以使用一套代码来处理多种不同类型的数据

1.2JDK中自带的泛型类和用法

二、自定义泛型设计

2.1 泛型类

ArrayList<E>,E表示元素Element;
HashMap<K,V>, ,K表示Key,V表示Value;
自定义泛型变量常用T,T表示Template。

 2.2泛型类的调用

 2.3泛型方法

2.4泛型接口

三、泛型类型限定

3.1泛型类的继承 

3.2上限界定符

上限界定符,Pair<? extends S> 

 3.3下限界定

3.4泛型PECS原则

- Producer Extends, Consumer Super


-要从泛型类读取类型T的数据,并且不能写入,可以使用?extends 通配符;(Producer Extends,泛型类是生产者,往外输出东西)


-如果要向泛型类写入类型T的数据,并且不需要读取,可以使用?super 通配符;(Consumer Super,泛型类是消费者,往内增加东西)


-如果既想写入又想读出,那就不用通配符

3.5无限定泛型

四、泛型实现的本质和约束

4.1类型擦除

JDK的版本是向后兼容的即低版本的class文件可以在高版本的JDK上运行
因此,JVM里面没有泛型对象,而是采用类型擦除技术,只有普通的类和方法

4.2无限定的

 4.3有限定的

4.4自动转换(自动桥方法)

 4.5泛型的约束

五、Java类型协变和逆变 

5.1面向对象语言

 5.2JAVA数组

5.3java泛型

5.4复合 

猜你喜欢

转载自blog.csdn.net/qq_62377885/article/details/132568610
今日推荐