我已经从这里下载了
无论如何,当没有Java编译器时,这个用Java编写的Java编译器源代码是如何被编译的呢?
javac
源代码,发现它本身是用Java语言编写的。然而,我原本以为它是用c/c++编写的。无论如何,当没有Java编译器时,这个用Java编写的Java编译器源代码是如何被编译的呢?
javac
源代码,发现它本身是用Java语言编写的。然而,我原本以为它是用c/c++编写的。一种用于编译自身语言的编译器称为引导编译器。
它们的制作方式有点令人费解,但是想一想:当最初的语言被编写时,还没有Java,因此他们不得不使用另一种语言来创建编译器,而这种语言实际上是用C/C++编写的。在这里查看:Java编译器和JVM使用哪种语言编写?
此外,Java的工作方式是,编译器(javac
)实际上不会生成机器代码文件,而是创建字节码文件,然后由JVM进行解释。
javac
作为“真正的”编译器。 这与说“JIT也是编译器”完全不同。 如果你要开始区分“编译器”和“真正的编译器”,那么我们需要为两个术语提供定义... - Jon Skeet