Javac编译过程
编译过程大致分为1个准备过程和3个处理过程,
1)准备过程:初始化插入式注解处理器。
2)解析与填充过程
①词法,语法分析。将源代码的字符流转变为标记集合,构造出抽象语法树。
②填充符号表。产生符号地址和符号信息。
3)插入式注解处理器的注解处理过程:
4)分析与字节码生成过程:
①标注检查。
②数据流及控制流分析。
③解语法糖。
④字节码生成。
类型擦除
笔者理解:泛型的存在是为了规范编程人员对集合存储类型的统一,存在于代码阶段,在编译阶段中会将这种泛型类型擦除,变为裸类型。