目录
-
-
-
-
- [1. 不涉及编译优化](#1. 不涉及编译优化)
- 2.功能限制
- [3. 静态编译特性](#3. 静态编译特性)
- [4. 与AOT编译器的对比](#4. 与AOT编译器的对比)
-
-
-
1. 不涉及编译优化
- 1.前端编译器的主要任务是将符合Java语法规范的Java代码转换为符合JVM规范的字节码文件
- 2.并不会直接涉及编译优化等方面的技术。
- 3.具体的优化细节通常是由HotSpot的JIT(Just In Time)编译器负责的。
2.功能限制
- 1.前端编译器的主要功能是将Java源代码(.java)文件编译成字节码文件(.class文件),以供加载器进行类型加载。
- 2.主要负责解析Java源代码,进行词法分析、语法分析,并生成相应的字节码指令。
- 3.不直接涉及将字节码转换为可在硬件上直接运行的机器码过程,这是由JIT编译器在运行期间负责的。
3. 静态编译特性
- 1.前端编译器在编译时是静态的,即它根据源代码的内容生成固定的字节码文件。
- 2.不能根据程序运行时的具体情况进行动态优化。
4. 与AOT编译器的对比
- 1.AOT(Ahead-Of-Time)静态提前编译器
- 2.前端编译器生成的字节码文件需要由JIT编译器进一步转换为机器码才能执行。
- 3.AOT编译器则可以直接将Java源代码编译成机器码,从而避免了运行时的编译开销。
- 4.AOT编译器的使用也有一些限制,如需要为每个不同硬件和操作系统编译对应的发行包,且降低了Java链接过程的动态性。