本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
In which language is the Java compiler, JVM and Java written?
我只是好奇。 Java是在C上运行还是可以直接安装在硬件上? 它直接将Java字节码转换为机器代码还是在某处使用C?
Java基于C ..我认为Java在其自己的虚拟机上运行,并转换为字节码..
我不认为这个问题是链接问题的重复。 另一个问题是关于Java实现的语言(如果我理解正确的话),是否Java程序直接在硬件上运行,或者需要解释器/ JIT(最有可能用C编写)来执行。 对于这个问题的答案是:大多数Java实现需要解释器/ JIT(JVM的一部分),但是正如Zan Lyx所说,某些硬件可以直接执行Java。
您可以尝试从OpenJDK下载源,以查看此参考实现的工作方式。
JVM(Java虚拟机)可以是解释器或JIT(即时)编译器,也可以是两者。 如果它是编译器,则它是直接编写机器代码。 它不会先编写C代码。
JVM可以用C或C ++或Java编写。 它几乎可以用任何一种语言编写,并且仍然是JVM。
有一些可以直接运行Java的硬件,例如智能卡。
Java在Java上运行。
JVM用Java编写,并将字节码转换为机器语言。 类加载器,垃圾收集器等也是用Java编写的,您也可以用自己的Java版本覆盖它们。 在特定的OS上可能会有少量的C来引导整个程序(例如加载可执行文件),但是不,C并不扮演重要的角色。
JVM解释字节码。 JIT编译器(在调用时)实际上将字节码转换为机器语言。
Sun JAVA最有可能用C或C ++编写
@Phil,"最有可能的"是一个非常浮躁的短语。 Suns HotSpot JVM主要是C / C ++,但OP询问的是" Java"而不是" Sun Java"。 有很多用Java编写的JVM,例如Jikes JVM。