java虚拟机有几种 java虚拟机是用什么语言编写的?它的原理谁能通俗的讲出来吗?

java虚拟机是用什么语言编写的?它的原理谁能通俗的讲出来吗?java虚拟机功能就是执行Java字节码,其编码实现就是一个死循环,每一次循环就是取字节码,执行字节码的过程,所以跟其它程序没有什么本质区

java虚拟机是用什么语言编写的?它的原理谁能通俗的讲出来吗?

java虚拟机功能就是执行Java字节码,其编码实现就是一个死循环,每一次循环就是取字节码,执行字节码的过程,所以跟其它程序没有什么本质区别。主流的javaVM还是用C语言实现的居多,再以汇编为辅助,用java实现javaVM的情况有,但不多。

下面是一个在智能设备里用C语言实现虚拟机的片段。

这一段代码就是对short加法这个字节码的实现。

而这一段代码就是取字节码并执行,是不是觉得JavaVM也不过如此呢。

有不少人会为了优化虚拟机的效率,而选择用汇编把这些执行频度很高的代码重写一下。

总结就是C实现的多,会结合汇编作为辅助。其它语言也有,但不是主流。