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

use*_*721 66 java

在采访中我被问到用什么编程语言来实现Java.我惊呆了:我从没想过这个.我只知道核心Java类是用Java编写的.

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

San*_*nne 91

编写Sun的JDK实现的人之一已经回答了同样的问题,请点击这里Wiki Answers

Java语言是一种语言规范 - 您不是用语言编写语言,而是规范.那就像问"你用德语写法语吗?"

我认为提问者真正想知道的是"JDK开发的语言是什么?" 也就是说,整个Java虚拟机和类库开发的底层语言是什么.

答案是:对于VM,它会有所不同,因为有多个不同的VM实现.但是,类库总是用Java编写,因为它们旨在使用Java VM本身运行.某些使用JNI(Java Native Interface)的库可能部分用各种其他语言编写,因为它们可以在JVM外部使用.

Sun/Oracle VM是用C++编写的.BEA/Weblogic/Oracle VM用C语言编写.IBM的J9(我相信)是用C++编写的.实际上有几个用Java编写的虚拟机,其中一个甚至是用Lisp编写的.绝大多数JVM还包括汇编程序代码以加速某些"热"区域.

  • 你没有得到它."语言"是不需要"书写"的描述.它只需要描述.即使*如果*此规范包括引导(我相信它没有)这样的机制,描述仍然只是描述. (18认同)
  • "你不会用语言写一种语言"这并非总是如此.自2012年以来,GCC一直用C++编写([引用](https://www.quora.com/C-programs-are-compiled-using-gcc-which-itself-is-written-in-C-so-how -code-for-gcc-is-compiled))和Scala编译器是用Scala编写的([引用](http://stackoverflow.com/a/19580470/1478636)).这两个页面都引用了[bootstrapping](https://en.wikipedia.org/wiki/Bootstrapping_(编译器))来完成此任务. (8认同)

s1l*_*nce 17

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

其他方存在其他虚拟机,这些虚拟机用其他语言实现,有些甚至用Java本身实现.其中一些列表可在维基百科上找到.

为了理解这一点,您必须知道Java虚拟机在构建项目时执行由Java编译器生成的字节码.此字节码的级别适用于所有可能的操作系统和平台,因此可用于特定平台的虚拟机.(这就是Java实现跨系统兼容性的方式)

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


Sum*_*ngh 12

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

太阳JVM是用C,你的机器上运行的JVM是一种platform-dependent executable,因此本来是最初以任何语言编写.
Oracle JVM(HotSpot)写在C++ programming language.

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