困惑的java编译过程
好吧我知道这个:我们编写java源代码,平台独立的编译器将其转换为字节码,然后依赖于平台的jvm将其转换为机器代码.
所以从一开始,我们编写java源代码.编译器javac.exe是一个.exe文件.这个.exe文件究竟是什么?是不是用java编写的java编译器,那怎么会有执行它的.exe文件呢?如果编译的代码是java,那么编译器代码是如何在编译阶段执行的,因为它是jvm执行java代码的工作.语言本身如何编译自己的语言代码?这对我来说似乎都是鸡和蛋的问题.
现在.class文件到底包含什么?它是文本形式的抽象语法树,是表格信息,它是什么?
任何人都能告诉我有关如何在机器代码中转换我的java源代码的清晰而详细的方法.