虚拟机(Virtual Machine),就是一台虚拟的计算机。 它是一个软件,用来执行一系列虚拟计算机指令。

大体上,可以分为两类:

  • 系统虚拟机
    • Visual Box,VMware就属于系统虚拟机。
    • 完全是对物理计算机的仿真,提供了一个可运行完整系统的软件平台
  • 程序虚拟机
    • 典型代表就是Java虚拟机
    • 专门为执行单个计算机程序而设计
    • Java虚拟机中执行的指令,称为Java字节码指令

无论是系统虚拟机还是程序虚拟机,在上边运行的软件都被限制于虚拟机提供的资源中

Java虚拟机

就是二进制字节码的���行环境,负责装载字节码到其内部,解释/编译为对应平台上的机器指令执行。 每一条Java指令,Java虚拟机规范中都有详细的定义
特点:

  • 一次编译,到处运行
  • 自动内存管理
  • 自动垃圾回收

JVM的位置

image.png
运行在操作系统上,和硬件没有直接交互

JVM整体结构

image.png

  • HotSpot VM是目前市面上高性能虚拟机代表作之一
  • 采用解释器与即时编译器并存的架构