请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

老师问一个不是特别重要的问题

jvm 字节码 解释 机器码
解释器 是用字节码写的还是机器码 ?

正在回答

1回答

咚咚呛 2019-06-27 22:35:22

哈哈,这个问题挺好的。

我们从Java环境讲起,在安装Java环境的时候,一般都需要安装jdk和jre两种东西,什么是jdk,什么是jre呢?

jdk是Java Development Kit,Java开发工具包,jdk包含javac这样的工具,javac就是可以将Java程序编译成.class字节码的工具。

jre是Java Runtime Environment,Java运行环境,也就是Java字节码被解析成机器码执行的地方。

jdk包含jre,jre不包含jdk。只安装jre不安装jdk,则我们只能执行.class而不能编译。

因而这里提到的解析器是包含在jre里面的,那jre包含哪些内容呢?

JVM就是在jre里面的,Java的字节码在JVM上执行,JVM屏蔽了底层不同系统的差异(在Windows和Linux可以运行同一个字节码程序无需重新编译)。

所以简单的来看,JVM就是Java字节码的解析器,那么JVM是什么语言写的呢?JVM既不是字节码写的也不是机器码写的,JVM是C++写的。

希望对你有所帮助。


6 回复 有任何疑惑可以回复我~
  • 所以我可以理解为,JDK把程序源码编译成字节码,而编译好的字节码由JRE中的JVM解析成当前操作系统的机器码,最终操作系统执行程序
    回复 有任何疑惑可以回复我~ 2019-06-28 21:43:59
  • LK90 #2
    jvm应该是有多种实现的,不止于c++
    回复 有任何疑惑可以回复我~ 2019-06-29 10:46:47
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信