Java编译器和JVM是用哪种语言编写的?
Java编译器(),虚拟机(JVM)和启动器是用哪些语言编写的?javac
java
这个问题的确切措辞有点误导:它不是“JVM”或“编译器”,因为有多个JVM供应商(jrockit是一个,IBM是另一个)和多个编译器。
Sun JVM 是用 编写的,尽管情况并非如此 - 在计算机上运行的 JVM 是依赖于平台的可执行文件,因此最初可以用任何语言编写。例如,最初的 IBM JVM 是用 Smalltalk 编写的。C
Java 库(等,通常称为 Java API)本身是用 Java 编写的,尽管标记为 will 的方法已用 或 编写。java.lang
java.util
native
C
C++
我相信Sun提供的Java编译器也是用Java编写的。(尽管再次,那里有多个编译器)
第一个Java编译器是由Sun Microsystems开发的,是使用C++的一些库用C语言编写的。今天,Java编译器是用Java编写的,而JRE是用C编写的。
我们可以想象Java编译器是如何用Java编写的:这样:
Java编译器被编写为Java程序,然后使用用C(第一个Java编译器)编写的Java编译器进行编译。因此,我们可以使用新编译的Java编译器(用Java编写)来编译Java程序。