在采访中我被问到用什么编程语言来实现Java。我惊呆了:我从没想过这个。我只知道核心Java类是Java。
使用什么编程语言来开发Java?
答案 0 :(得分:81)
编写Sun JDK实现的人之一已经回答了同样的问题 点击这里Wiki Answers
Java语言是一种语言规范 - 你不写一个 语言中的语言,这是一个规范。那会是这样的 问“你用德语写法语吗?”
我认为提问者真正想知道的是“什么 语言是JDK开发的吗?“也就是说,底层是什么 语言是整个Java虚拟机和类库的开发 in。
答案是:对于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还包括汇编程序代码以加速某些程序 “热”地区。
答案 1 :(得分:16)
Oracle执行Java代码的 Java虚拟机(JVM)是用C ++编写的。
其他方存在其他虚拟机,这些虚拟机以其他语言实现,有些甚至在Java本身中实现。维基百科here上提供了其中一些列表。
为了理解您必须知道,Java虚拟机在构建项目时执行由Java编译器生成的bytecode。此字节码的级别适用于所有可能的操作系统和平台,因此可以在特定平台的虚拟机上运行。 (这就是Java实现跨系统兼容性的方式)
还有几个 Java编译器。 (将Java代码编译成字节码的那些)最常见的是oracle的javac编译器,主要用C编写。有关这些here的更多信息。
答案 2 :(得分:12)
Java库(java.lang, java.util etc, often referred to as the Java API)
本身是用Java编写的,但标记为native.
的方法
Sun JVM是用C语言编写的,在您的计算机上运行的JVM是platform-dependent executable
因此可能最初用任何语言编写。
Oracle JVM(HotSpot)写在C++ programming language
中。
Oracle提供的Java编译器是用Java编写的。
答案 3 :(得分:3)
基本上java在java中通过本机api使用C.您可以检查Java中任何类的源代码,如Object类,并检查每当它想要使用C语言时,他们在java中调用了本机API。
like public native int hashCode();
答案 4 :(得分:2)
Java是用C和Java编写的。
答案 5 :(得分:0)
Java在JVM-java虚拟机上运行。 JVM的实现各不相同。