无关性的基石

发布时间 2023-04-18 11:04:12作者: ylc0x01

无关性的基石 - 前端编译器javac

深入理解Java虚拟机:JVM高级特性与最佳实践(第3版):

实现语言无关性的基础仍然是虚拟机和字节码存储格式。Java虚拟机不与包括Java语言在内的任何程序语言绑定,它只与“Class文件”这种特定的二进制文件格式所关联,Class文件中包含了Java虚拟机指令集、符号表以及若干其他辅助信息。

前端编译器是将*.java文件转变成*.class文件的工具。日常最常用的前端编译器就是javac。

jdk9之前javac的源码在langtools/src/share/classes/com/sun/tools/javac中,jdk9之后,javac被挪到jdk.compiler模块,源码在src/jdk.compiler/share/classes/com/sun/tools/javac中。

Javac将Java源代码转变为字节码的过程中会涉及 词法分析、语法分析、语义分析及代码生成等阶段:

转变过程

源码下载,我下载的是jdk-jdk7-b147