Java编译器(javac)、虚拟机(JVM)和Java启动器是用哪种语言编写的?


当前回答

来自Java文档

编译器是用Java编写的,运行时是用ANSI C编写的

其他回答

When Java was introduced by Sun Microsystem, the java compiler was written in C using some libraries from C++. As there is a concept in Compiler Design called Bootstrapping, Mostly it is used in Compiler Development, Bootstrapping is the process of writing a compiler(Or Assembler) In the source programming language which it is intended to compile. It is used to produce a self-hosting compiler. The development of compilers for new Programming languages first developed in an existing language and then rewritten in the new language and compiled by itself. That's why today, Java compiler is written in Java itself. Java Virtual Machine: Java virtual machine is an abstract machine. Like a real computing machine, It has an instruction set and manipulates various memory areas of runtime. Usually, JVM interprets the byte code into Machine code.

(有关更多信息,您可以查看此链接:https://docs.oracle.com/javase/specs/jvms/se7/html/)

实际上,Oracle JVM是用c++编写的,而不是C。

看看HotSpot JVM代码:http://openjdk.java.net/groups/hotspot/

Jikes RVM,一个广泛用于研究目的的自托管JVM,是用Java编写的。它不是人们在桌面上运行的那种,但它在我的“现在让我们展示一下这种语言的强大功能”列表中名列前茅。

假设您谈论的是Hotspot JVM,它是Sun提供的iirc,它是用c++编写的。有关Java的各种虚拟机的更多信息,可以查看这个链接。 javac,像大多数Java编译器一样,是用Java编写的。

原则上几乎任何事情,通常C