用什么编程语言来开发Java?

在面试中我被问到用什么编程语言来实现Java。 我惊呆了:我从来没有想过这个。 我只知道Java中的核心Java类。

用什么编程语言来开发Java?

同样的问题已经由编写Sun的JDK实现的人之一回答了Wiki维基答复

Java语言是一种语言规范 – 你不用一种语言写一种语言,这是一个规范。 这就像是问“你用德语写法文吗?”

我假设提问者真正想知道的是“JDK开发了什么语言?” 也就是说,开发的整个Java虚拟机和类库是底层语言。

答案是:对于虚拟机,它有所不同,因为有多个不同的虚拟机实现。 但是,类库始终是用Java编写的,因为它们打算使用Java VM本身来运行。 某些使用JNI(Java本地接口)的库可能部分用其他各种语言编写,因为它们打算在JVM之外使用。

Sun / Oracle VM是用C ++编写的。 BEA / Weblogic / Oracle VM是用C语言编写的。IBM的J9是用C ++编写的(我相信)。 有几个虚拟机实际上是用Java编写的,有一个甚至是用Lisp编写的。 绝大多数的JVM还包括汇编代码来加速某些“热门”领域。

由Oracle在其上执行Java代码的Java虚拟机 (JVM)是​​用C ++编写的。

还有其他方面的其他虚拟机,其他语言,甚至一些Java本身。 其中一些列表可在维基百科上获得。

为了理解你必须知道,Java虚拟机在构build项目时执行由Java编译器生成的字节码 。 这个字节码适用于所有可能的操作系统和平台,因此可以在特定平台的虚拟机上工作。 (这就是Java如何实现跨系统兼容性)

还有几个Java编译器 。 (把Java代码编译成字节码的)最常见的就是oracle的javac编译器,主要是用C编写的。关于这些的更多信息请看这里 。

Java库(java.lang, java.util etc, often referred to as the Java API)本身是用Java编写的,尽pipe方法被标记为native.

Sun的JVM是用C编写的 ,在你的机器上运行的JVM是一个platform-dependent executableplatform-dependent executable ,因此可能原本是用任何语言编写的
Oracle JVM(HotSpot)是用C++ programming language

Oracle提供的Java编译器是用Java编写的。

基本上Java是通过Java中的本地api使用C. 你可以像Object类一样检查Java中的任何类的源代码,并检查是否每当它想使用C语言时,它们都会在java中调用native API。

像公共本地int hashCode();

Java是用C和Java编写的。

Java运行在JVM – Java虚拟机上。 JVM的实现有所不同。