目录
1、什么是虚拟机?
虚拟机是一种运行在操作系统之上的软件程序,它模拟了一台计算机的硬件环境和操作系统功能,从而可以在其上运行应用程序。虚拟机的本质是在硬件层面和操作系统层面之上添加了一个抽象层,通过这个抽象层,应用程序可以直接在虚拟机上运行,而不需要关心底层硬件和操作系统的细节。
虚拟机有多种类型,包括:
- 操作系统级虚拟化:通过虚拟化技术将一台物理计算机分割成多个虚拟的计算机,每个虚拟计算机都运行着自己的操作系统和应用程序,互不干扰。
- 应用程序虚拟机:它是一种特殊的虚拟机,用于运行特定类型的应用程序,如 Java 虚拟机(JVM)用于运行 Java 应用程序,.NET 虚拟机用于运行 .NET 应用程序。
- 模拟器:它可以模拟一台完整的计算机系统,包括硬件和操作系统,可以运行任何类型的应用程序。
虚拟机的优点在于它可以实现跨平台和隔离性。跨平台是指应用程序可以在不同的操作系统和硬件平台上运行,而不需要重新编写或修改代码;隔离性是指虚拟机可以将应用程序隔离开来,从而提高应用程序的安全性和可靠性。虚拟机在云计算、虚拟化和容器化等领域都得到广泛的应用。
2、JVM 虚拟机简介
JVM(Java Virtual Machine,Java 虚拟机)是一个能够运行 Java 字节码的虚拟机,它是 Java 平台的核心组件之一。JVM 是跨平台的,可以在不同的操作系统上运行相同的 Java 应用程序,因为它提供了一个统一的运行环境。在运行 Java 应用程序时,首先需要将 Java 源代码编译成字节码,然后将字节码交给 JVM 执行。
JVM 主要由三部分组成:类加载器、运行时数据区和执行引擎。// JVM学习蓝图
(1)类加载器
类加载器是 JVM 的一个重要组成部分,它的主要作用是将字节码加载到 JVM 中并生成对应的类。类加载器按照层次结构进行组织,每个类加载器都有一个父类加载器,最顶层的类加载器是引导类加载器(Bootstrap ClassLoader),它是用本地代码实现的,主要负责加载 Java 核心类库。其他类加载器包括扩展类加载器(Extension ClassLoader)和应用程序类加载器(Application ClassLoader)。// 双亲委派机制
&