深入理解Java虚拟机(0)——JVM基本介绍

1、什么是JVM?

 

    我们知道Java代码可以一次编写,到处执行(Write once,run anywhere),而这一特性正是JVM提供的。JVM帮工程师屏蔽了不同平台的差异性,提供了一致的编写接口。

 

    我们编写的代码首先被编译器 编译成 符合JVM规范的class文件,然后JVM就是负责加载这个class文件,分配内存空间然后执行字节码。

 

    注意:JVM只是一个平台,不仅仅支持Java语言,目前还支持:scala、Cloure、JRuby等新型语言,只要编译出来的class文件符合JVM规范,即可被JVM解释执行。

 

2、什么是JDK、JRE?

 

JDK(Java Development Kit):是用于支持Java程序开发的最小环境,包括 Java程序设计语言、Java虚拟机、Java API类库 这三部分。在JDK的安装目录下有一个jre目录,里面有两个文件夹bin和lib,可以这么认为:其中bin里的就是jvm,lib就是jvm工作所需要的类库,而jvm + lib类库就成为JRE。

 

深入理解Java虚拟机(0)——JVM基本介绍

 

JRE(Java Runtime Environment):Java运行环境,支持Java程序运行的标准环境。包含JVM的标准实现及Java核心类库。这是一个运行环境,而不是一个开发环境,所以没有包含任何开发工具(如编译器和调试器)。

 

3、JVM的架构

 

深入理解Java虚拟机(0)——JVM基本介绍

 

如上图所示,JVM结构由3部分构成:

 

  • 类加载器子系统

  • 运行时数据区

  • 执行引擎

 

一个JVM就是一个进程。