【JVM】Java虚拟机简介
我们看中的并非Java语言,而是JVM。——Java之父James Gosling
Java 虚拟机(Java virtual machine,JVM)是运行 Java 程序必不可少的机制。
JVM实现了Java语言最重要的特征:即平台无关性。这是因为编译后的 Java 程序指令并不直接在硬件系统的 CPU 上执行,而是由 JVM 执行。JVM屏蔽了与具体平台相关的信息,使Java语言编译程序只需要生成在JVM上运行的目标字节码(.class),就可以在多种平台上不加修改地运行。Java 虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。因此实现java平台无关性。它是 Java 程序能在多平台间进行无缝移植的可靠保证,同时也是 Java 程序的安全检验引擎(还进行安全检查)。
JVM是编译后的 Java 程序(.class文件)和硬件系统之间的接口(编译后:javac 是收录于 JDK 中的 Java 语言编译器。该工具可以将后缀名为. java 的源文件编译为后缀名为. class 的可以运行于 Java 虚拟机的字节码。)
我们经常听说Java虚拟机,其实这只是侠义上的理解。JVM可能指的是以下三种不同的概念:虚拟机规范、 一个具体实现、 一个运行中的虚拟机实例。
如图是Sun HotSpot的虚拟机实现的体系结构,它分为类装载子系统、运行时数据区、执行引擎以及本地方法接口,接下来一一介绍。
本文将从JVM的几大核心技术切入:JVM内存管理、class文件格式、类装载、垃圾收集、多线程并发。
声明:图片来自源于网络。这是之前整理的word笔记,没有注明图片具体来源,抱歉。在此向贡献图片的人表示感谢。