今天的博客主题
Java虚拟机 ——》 Java虚拟机初始
什么是虚拟机?
Virtual Machine (虚拟机)简称 VM
VM 是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在实体计算机中能够完成的工作在虚拟机中都能够实现。
每个虚拟机都有独立的CMOS、硬盘和操作系统,可以像使用实体机一样对虚拟机进行操作。
常见的虚拟机有:WindowsXP虚拟机,Linux虚拟机,Java虚拟机等。
简单说:通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。
什么JVM?
JVM 是 Java Virtual Machine的简称,意为Java虚拟机。
JVM 其实就是负责执行 Java 程序代码的一个软件程序。
我们都知道Java语言一个特性就是跨平台,而实现这一特性的就是 JVM.
Java 虚拟机虽然名是 Java 什么,但和 Java 语言没有直接的关系。
它只根据自己的规范规则来读取类文件,解析执行字节码指定。
在开发 Java 程序的时候 需要搭建环境,安装JDK,JVM就是 JDK其中的一部分,当我们说运行了一个Java程序的时候,其本质上是运行了一个 JVM 进程。
JVM 主要定制了二进制 class 文件和 JVM 的一些指令集。
JVM组成
JVM 包含了两个子系统和两个组件,
两个子系统:Class loader(类装载)、Execution engine(执行引擎)
两个组件:Runtime data area(运行时数据区)、Native Interface(本地接口)
Class loader(类装载):根据给定的全限定类名来装载 class 文件到运行时数据区中的方法区。
Execution engine(执行引擎):执行 classes 中的指令。
Native Interface(本地接口):与本地库的交互,是其它编程语言交互的接口。
Runtime data area(运行时数据区域):就是我们常说的 JVM 的内存区域。
JVM规范
JAVA 虚拟机规范是一种对 JAVA 虚拟机实现的规范要求,是由 oracle 制定的,而我们平时常说的JAVA虚拟机一般是指的一种具体的 JAVA 虚拟机规范的实现。
比如我们最经常使用到的 JAVA 虚拟机 hotspot,还有一些其他的 JAVA 虚拟机的实现。
可以在学习 JVM 之前,先看一遍 JVM的规范,会对学习 JVM 有帮助的。
JVM学习路线
1)JVM类加载机制
2)JVM整体架构认知
3)JVM内存分配机制
4)垃圾收集算法&垃圾收集器
5)GC调优
6)Class文件结构