被java编译过程弄糊涂了
好的,我知道这一点:我们编写java源代码,平台无关的编译器将其翻译成字节码,然后平台相关的jvm将其翻译成机器码。
因此,从一开始,我们就编写java源代码。编译器javac.exe是一个.exe文件。这个.exe文件到底是什么?java编译器不是用java写的,怎么会有.exe文件来执行它呢?如果编译器代码是用java编写的,那么编译器代码是如何在编译阶段执行的,因为执行java代码是jvm的工作。语言本身如何编译自己的语言代码?在我看来,这一切都像是鸡和蛋的问题。
现在,.class文件到底包含什么内容?它是文本形式的抽象语法树吗?是表格信息吗?它是什么?
谁能告诉我清楚和详细的方法,我的java源代码是如何转换成机器码。
https://stackoverflow.com/questions/3406942
复制相似问题