Java编译器(javac)、虚拟机(JVM)和Java启动器是用哪种语言编写的?
当前回答
假设您谈论的是Hotspot JVM,它是Sun提供的iirc,它是用c++编写的。有关Java的各种虚拟机的更多信息,可以查看这个链接。 javac,像大多数Java编译器一样,是用Java编写的。
其他回答
来自Java文档
编译器是用Java编写的,运行时是用ANSI C编写的
假设您谈论的是Hotspot JVM,它是Sun提供的iirc,它是用c++编写的。有关Java的各种虚拟机的更多信息,可以查看这个链接。 javac,像大多数Java编译器一样,是用Java编写的。
这个链接应该能回答你的问题
现在编译器似乎是用Java编写的,但运行时是用ANSI C编写的
一如既往的流行语言,用- C、c++编写。
这个问题的精确措辞有点误导人:它不是“JVM”或“编译器”,因为有多个JVM供应商(jrockit是一个,IBM是另一个)和多个编译器。
The Sun JVM is written in C, although this need not be the case - the JVM as it runs on your machine is a platform-dependent executable and hence could have been originally written in any language. For example, the original IBM JVM was written in Smalltalk The Java libraries (java.lang, java.util etc, often referred to as the Java API) are themselves written in Java, although methods marked as native will have been written in C or C++. I believe that the Java compiler provided by Sun is also written in Java. (Although again, there are multiple compilers out there)
推荐文章
- 如何格式化Joda-Time DateTime仅为mm/dd/yyyy?
- 如何在POM.xml中引用环境变量?
- 如何在android中复制一个文件?
- 将整数转换为字符串,以逗号表示千
- 接口方法的最终参数-有什么意义?
- Java中的@UniqueConstraint注释
- 如何在清洁模式下运行eclipse ?如果我们这样做会发生什么?
- 获取java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory异常
- Java中的正则表达式命名组
- c#和Java的主要区别是什么?
- 什么是NullPointerException,我如何修复它?
- 在Java中使用“final”修饰符
- 无法在Flutter上找到捆绑的Java版本
- 如何在Kotlin解析JSON ?
- 如何在新的材质主题中改变背面箭头的颜色?