javac编译过程

参考文章(深入理解JVM之Javac编译器详解)
javac编译过程
编译过程大致可以分为三个步骤:

  • 解析和填充符号表过程
  • 插入式注解处理器的注解处理过程
  • 分析和字节码生成过程

这三个步骤所做的工作内容大致如下:

javac编译过程

这三个步骤之间的关系和交互顺序如下图所示,可以看到如果注解处理器在处理注解期间对语法树进行了修改,编译器将回到解析和填充符号表的过程进行重新处理,直到注解处理器没有再对语法树进行修改为止。
javac编译过程