在讲JVM以前,首先让咱们了解一些概念。java
字面意思就是一台虚拟的计算机,这台计算机的硬件都是经过软件模拟出来的。用过 vmware 的人 应该就对 虚拟机 这个概念很熟悉了。jvm
机器码,学名机器语言指令,有时也被称为原生码(Native Code),是CPU可直接执行的代码。虚拟机
JVM 是一种虚拟机规范,任何遵照JVM规范的虚拟机均可以称之为JVM虚拟机。class
注意上面说的是JVM虚拟机而不是java虚拟机,由于,jvm发展到如今已经不仅仅是java一家再用了,而是慢慢造成了一个生态。好比Jython、jRuby、Scala、 Groovy、 Clojure 都在使用jvm虚拟机。效率
咱们日常使用的Oracal JDK中的 java虚拟机,名字叫作 HotSpot,它是JVM 的一个实现。软件
JVM 和 Java虚拟机 是规范与实现的关系硬件
上面讲到vmware
JVM虚拟机和普通计算机的不一样之处在于计算机
既然有jvm虚拟机,那对应的也有 “jvm实体机”。语言
jvm实体机是一组实现了jvm规范的硬件,它能够直接执行.class字节码,而且效率极快! 由于在jvm实体机中.class字节码字不须要再被转换成机器码在执行,此时它就是机器码。
能够简单理解为