当前位置:  开发笔记 > 编程语言 > 正文

Java编译器和JVM用哪种语言编写?

如何解决《Java编译器和JVM用哪种语言编写?》经验,为你挑选了6个好方法。

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



1> oxbow_lakes..:

这个问题的精确措辞有点误导:它不是"JVM""编译器",因为有多个JVM供应商(jrockit是一个,IBM另一个)和多个编译器.

太阳JVM 写在C,虽然这不是必须的情况下-因为它运行在您的机器是在JVM 平台相关的可执行文件,因此可能最初被用任何语言编写.例如,最初的IBM JVM是用Smalltalk编写的

Java库(java.lang,java.util等等,通常被称为了Java API)本身是用Java编写的,虽然标注为方法native将已经写在CC++.

我相信Sun提供的Java编译器也是用Java编写的.(虽然再次,有多个编译器)


请提供用C编写的Sun JVM的参考.
HotSpot JVM是用C++编写的 - http://www2.research.att.com/~bs/applications.html
@devdimi该链接已损坏,现在位于:http://www.stroustrup.com/applications.html

2> 小智..:

第一个Java编译器是由Sun Microsystems开发的,使用C++中的一些库用C语言编写.今天,Java编译器是用Java编写的,而JRE是用C编写的.

我们可以想象Java编译器是如何用Java编写的:

Java编译器编写为Java程序,然后使用C编写的Java编译器(第一个Java编译器)进行编译.因此,我们可以使用新编译的Java编译器(用Java编写)来编译Java程序.


+1用于解释如何用Java编写Java编译器:)

3> Sev..:

来自Java Docs

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


什么编译Java?Java的.那么,你如何获得Java?编译它.咦?
这真的是一个古老的文件(从事物的外观看> 10年).例如,它说*"Java字节码被动态转换为本机机器指令(解释)并且不存储在任何地方"*这在大约5年内不是真的!
好吧,因为什么时候文档真的是最新的,特别是在大的变化之后?:)

4> 小智..:

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

在这里查看HotSpot JVM代码:http://openjdk.java.net/groups/hotspot/



5> micmoo..:

此链接应该回答您的问题

似乎编译器现在用Java编写,但运行时是用ANSI C编写的



6> djna..:

原则上几乎任何东西,通常是C.

推荐阅读
有风吹过best
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有