1.编译期
- 前端编译器:把java转换成.class文件的过程。
- sun的javac eclipsejdt中的ecj
- 后端运行时编译器(JIT just in time):字节码转换为机器码的过程
- hotspot vm 中的 c1 c2编译器
- 静态提前编译器(AOT ahead of time):把.java编译成本地机器码的过程。
- gun compiler for java
ps:java中编译期在运行期的优化过程对于程序运行来说更重要,二前端编译期在编译期的优化过程对于程序编码来说更重要。
2.javac编译器
从 Sun Javac 的代码来看,编译过程大致可以分为 3 个过程,分别是:
- 解析与填充符号表过程。
- 插入式注解处理器的注解处理过程。
- 分析与字节码生成过程。
详细内容参考bloghttp://blog.youkuaiyun.com/u013678930/article/details/52032328