* 因为泛型其实只是在编译器中实现的而虚拟机并不认识泛型
-
,所以要在虚拟机中将泛型类型进行擦除。也就是说,在编译阶段使用泛型,运行阶段取消泛型,即擦除。
-
擦除是将泛型类型以其父类代替,如String变成了Object等。
-
其实在使用的时候还是进行带强制类型的转化,只不过这是比较安全的转换,因为在编译阶段已经确保了数据的一致性。
5.ArrayList存储字符串和自定义对象并遍历泛型版(掌握)
-
A:案例演示
-
ArrayList存储字符串并遍历泛型版
6.泛型的由来(了解)
-
A:案例演示
-
泛型的由来:通过Object转型问题引入
-
早期的Object类型可以接收任意的对象类型,但是在实际的使用中,会有类型转换的问题。也就存在这隐患,所以Java提供了泛型来解决这个安全问题。
7.泛型的由来(了解)
-
A:案例演示
-
泛型的由来:通过Object转型问题引入
-
早期的Object类型可以接收任意的对象类型,但是在实际的使用中,会有类型转换的问题。也就存在这隐患,所以Java提供了泛型来解决这个安全问题。
8.泛型方法的概述和使用(了解)
-
A:泛型方法概述
-
把泛型定义在方法上
-
B:定义格式
-
public <泛型类型> 返回类型 方法名(泛型类型 变量名)
-
C:案例演示
-
泛型方法的使用
9.泛型接口的概述和使用(了解)
-
A:泛型接口概述
-
把泛型定义在接口上
-
B:定义格式
-
public interface 接口名<泛型类型>
-
C:案例演示
-
泛型接口的使用
10.泛型高级之通配符(了解)
-
A:泛型通配符<?>
-
任意类型,如果没有明确,那么就是Object以及任意的Java类了
-
B:? extends E
-
向下限定,E及其子类
-
C:? super E
-
向上限定,E及其父类
11.增强for的概述和使用(掌握)
-
A:增强for概述
-
简化数组和Collection集合的遍历
-
B:格式:
for(元素数据类型 变量
《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》
【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享
: 数组或者Collection集合) {
使用变量即可,该变量就是元素
}
-
C:案例演示
-
数组,集合存储元素用增强for遍历
-
D:好处
-
简化遍历
12.三种迭代的能否删除(掌握)
-
普通for循环,可以删除,但是索引要–
-
迭代器,可以删除,但是必须使用迭代器自身的remove方法,否则会出现并发修改异常
-
增强for循环不能删除
13.静态导入的概述和使用(掌握)
-
A:静态导入概述
-
B:格式:
-
import static 包名….类名.方法名;
-
可以直接导入到方法的级别
-
C:注意事项
-
方法必须是静态的,如果有多个同名的静态方法,容易不知道使用谁?这个时候要使用,必须加前缀。由此可见,意义不大,所以一般不用,但是要能看懂。
14.可变参数的概述和使用(掌握)
-
A:可变参数概述
-
定义方法的时候不知道该定义多少个参数
-
B:格式