JVM 基础概念

在讲JVM以前,首先让咱们了解一些概念。java

什么是虚拟机?

字面意思就是一台虚拟的计算机,这台计算机的硬件都是经过软件模拟出来的。用过 vmware 的人 应该就对 虚拟机 这个概念很熟悉了。jvm

什么是机器码?

机器码,学名机器语言指令,有时也被称为原生码(Native Code),是CPU可直接执行的代码。虚拟机

什么是JVM 和 Java虚拟机有什么关系?

JVM

JVM 是一种虚拟机规范,任何遵照JVM规范的虚拟机均可以称之为JVM虚拟机。class

注意上面说的是JVM虚拟机而不是java虚拟机,由于,jvm发展到如今已经不仅仅是java一家再用了,而是慢慢造成了一个生态。好比Jython、jRuby、Scala、 Groovy、 Clojure 都在使用jvm虚拟机。效率

Java虚拟机

咱们日常使用的Oracal JDK中的 java虚拟机,名字叫作 HotSpot,它是JVM 的一个实现。软件

关系

JVM 和 Java虚拟机 是规范与实现的关系硬件

JVM虚拟机与普通计算机有何不一样?

JVM虚拟机

上面讲到vmware

  • JVM 是一种虚拟机规范
  • JVM虚拟机是遵照了 JVM规范的虚拟机

不一样之处

JVM虚拟机和普通计算机的不一样之处在于计算机

  • jvm虚拟机的 机器码 是 .class字节码(想一想这句话是什么意思。)

jvm实体机

既然有jvm虚拟机,那对应的也有 “jvm实体机”语言

jvm实体机是一组实现了jvm规范的硬件,它能够直接执行.class字节码,而且效率极快! 由于在jvm实体机中.class字节码字不须要再被转换成机器码在执行,此时它就是机器码。

什么是.class字节码?

能够简单理解为

  • jvm平台(jvm虚拟机和jvm实体机) 中,.class字节码就是机器码。
  • 在非jvm平台中,因为.class字节码是另一个平台(jvm平台)的机器码, 故不能以机器码相称,干脆取名叫字节码,以示区分。这就是字节码的由来(我我的理解的)。
相关文章
相关标签/搜索