1.注解
a.java.lang 注解类型摘要 对XXX的标记
b.java.lang.annotation 对标记的标记 掌握Retention Target 元注解
c.自定义注解 反射
x.设计注解类
y.应用了x的类
z.对y进行反射操作的类
在自定义的注解中添加基本属性
添加基本属性,有点像抽象方法的形式
value很特殊
数组类型的属性
枚举类型的属性 --->枚举和注解都是特殊的类,不能new创建它们的实例对象, 枚举是增加元素
注解类型的属性 --->注解是@
2.泛型
a.泛型的尝试 Object ? 类的不同泛型得到的Class是否是同一个 extends super
b.Map Map.Entry
c.自定义泛型 自己写的方法应用泛型 add swap autoConventType fill returnValue copy
d.crud Dao的增删改查 某一类型的 应用泛型
e.前面都是方法的泛型,这里是类或接口的泛型,叫做泛型类型
不能通过反射直接得到,通过和方法绑定,对方法反射
把问题化为前面的方法的泛型 得到传入参数getGenericParameterTypes
Type 的子类 参数化的Type
f.泛型的推断
3.类加载
得到所有的爸爸类加载器 看XXX是什么加载的
类加载器 树状结构 委托机制
4.代理
a.创建实现了Collection接口的动态类和查看其名称,分析Proxy.getProxyClass方法的各个参数
b.编码列出动态类中的所有方法
c.编码列出动态类中的所有构造方法和参数签名
d.创建动态类的实例对象
API中Proxy有两种得到动态类方式:
1)得到InvocationHandler
Class XXX = Proxy.getProxyClass(...);
Object YYY = XXX.getConstructor(...); Class构造方法的反射,与ZZZ绑定
2)Object XXX = Proxy.newProxyInstance(...);
e.demo的Spring 用到动态代理