1. 什么是注解
2. 反射机制
2. 类加载内存分析
3. 类加载的过程
实际中一个类是如何生产的 (加载(生成类的Class对象)-->链接-->初始化(cinit方法))
1. 在执行时,首先需要加载类(比如A)到内存中,
1.1 将文件中所有类的数据(包括方法,变量,常量,代码等)放入方法区中
1. 2 此后会在堆内存中产生这个类对应的Class类的对象(比如B),*重点:类的Class对象是在类加载的时候就产生了的
1.3 然后在运行main方法后,会实例化该类(new 图中的A)的时候,实例化d 对象会寻找并指向该对象所属类的Class对象(去获取Class对象中的数据结构),并调用cinit()方法初始化对象的数据(比如先会把栈中的静态变量设置为0)
何时发生类的初始化?
* 只有new该类的对象及通过反射调用时候会触发类的初始化
类加载器
创建运行时类的对象
Class对象能做些什么
反射操作泛型
重点理解:通过反射来操作注解