JVM概述
JVM(Java Virtual Machine)Java虚拟机,通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的计算机系统,Java虚拟机是Java程序与平台无关的保障,Java虚拟机本身是与平台相关的
JVM的执行流程
- 将字节码通过类加载器加载到Java虚拟机中
- Java虚拟机对字节码文件进行校验,同时加载一些Java类库用于提供基本功能
- Java解释器和Java即时编译器对字节码进行解释执行,以及和其他功能组件共同形成运行期系统(内存分配、字节码执行引擎、垃圾回收、高效并发处理、与真实机进行交互)
JVM的主要功能
- 通过ClassLoader寻找和装在class文件
- 解释字节码成为指令并执行,提供class文件的运行环境
- 进行运行期间的内存分配和垃圾回收
- 提供与硬件的交互平台
JVM规范
JVM规范为不同硬件平台提供了一种编译Java代码的技术规范,该规范使得Java程序独立于平台,因为编译是正对JVM的,所以Java虚拟机是Java程序与平台无关的保障,甚至若只要是能生成规范的字节码文件就可以是非Java语言的程序运行在JVM上,比如jPython、jRuby,也可以直接操作字节码文件,比如ASM
JVM规范主要有以下内容:
- 字节码指令集(类似汇编语言)
- 字节码文件格式
- 数据类型和值
- 运行时数据区
- 栈帧
- 类库
- 异常处理
- 虚拟机的启动、加载、连接和初始化等
Comments NOTHING