编译器的前端主要指的是 将 Java 文件 转为 class 文件的过程

一些语法糖的恢复都是在前端编译期间完成的

Javac 先进行词法和语法分析

执行插入式注解处理器 : 一个可以在编译期的时候,修改语法树的元素的API , 如 Lombak就是实现了此类API

然后开始执行数据流分析、解语法糖(自动装箱拆箱、变长参数)、生成字节码

细说一下解语法糖:

如执行泛型的类型擦除、 for-each 循环