在Java中始终使用"虚拟机"时,很少会读到Python"虚拟机"。
两者都解释字节码(一个是解释Java 一个是解释Python); 为什么一个叫虚拟机,另一个叫解释器(Interpreter)?

注意 这里的"虚拟机"是指处理虚拟机,而不是系统虚拟机(例如Qemu或Virtualbox)。进程虚拟机是只是提供一般编程环境的程序-程序可以编程。

下面详细解释以下两种叫法的起源:
Java具有解释器和虚拟机,而Python具有虚拟机机器和口译员。之所以"虚拟机"更多Java中的通用术语,而"解释器"是Python中更常见的术语与两种语言之间的主要区别有关:静态类型(Java)与动态类型(Python)。
在本文中,"类型"是指原始数据类型-表示以下项的内存存储大小的类型数据。
我们来仔细想一想Java程序 Java要求程序员指定每个变量的原始数据类型。但是Python不这样 它可以去猜,虽然这比较接近自然语言 但是这使得编译Python程序的时候 编译器的构造更加复杂(因为在执行每个操作之前确定暂停的附加任务涉及的每个变量或数据结构的原始数据类型操作)
所以 解释器是Python的首选术语 因为他必须暂停并检查数据类型。

但是我们要注意的是 虽然两者都用了字节码一次 但是并非所有的字节码都是平等的。事实上 他只是中间语言的通用术语,介于我们写的code的语言(高级语言:Python,Java)和计算机能看懂的语言(二进制码)之间,这种语言由编译器/解释器来使用。 Java字节码包含有关原始数据类型的信息,而Python字节码则没有。所以从某种意义上来说 Python虚拟机比Java虚拟机要慢。

总结一下 其实两者本质相同 都是用来解释对应的高级语言的。