初识Java虚拟机(JVM)

2022-01-15
1


关于Java虚拟机的认识,这里所说的虚拟机,其实就是一台虚拟的计算机。它是一款软件,用来执行一系列虚拟计算机指令。

虚拟机的分类

一般分为以下两类:

系统虚拟机

是对物理计算机的仿真,提供了一个可运行完整操作系统的软件平台,例如:Visual Box、VMware。

程序虚拟机

典型的就是Java虚拟机,专门为执行单个计算机程序而设计,在Java虚拟机中执行的指令我们称之为Java字节码指令。

什么是Java虚拟机(JVM)

Java虚拟机就是一台执行Java字节码的虚拟计算机,运行环境为二进制字节码。Java虚拟机是一个高效的、性能优异的、商用级别的软件运行和开发平台。

JVM的基本结构

Java虚拟机基本结构

类加载子系统

负责从文件系统或者网络中加载Class信息,加载的类信息存放于方法区。

方法区

除了存放类的信息,可能还会存放运行时常量池信息。

Java堆

在虚拟机启动的时候建立。几乎所有的Java对象实例都存放在Java堆中。

直接内存

在Java堆外的、直接向系统申请的内存区域。通常情况下,访问直接内存的速度优于Java堆。

垃圾回收系统

可以对方法区、Java堆和直接内存进行回收,其中,Java堆是垃圾回收器的工作重点。

Java栈

每一个Java虚拟机线程都有一个私有的Java栈。一个线程的Java栈在线程创建的时候被创建。Java栈中保存着帧信息、局部变量、方法参数,同时和Java方法的调用、返回密切相关。

本地方法栈

与Java栈相似,不同的是Java栈用于Java方法的调用,而本地方法栈则用于本地方法调用。

PC(Program Counter)寄存器

每个线程私有的空间,Java虚拟机为每一个Java线程创建PC寄存器。

执行引擎

最核心组件之一,负责执行虚拟机的字节码。

JVM的特点

(1)一次编译,到处运行
(2)自动内存管理
(3)自动垃圾回收功能

评论