从三种认知角度重识JVM
JVM概述
- JVM:Java Virtual Machine,也就是Java虚拟机
- 所谓虚拟机是指:通过软件模拟的具有完整硬件系统功能的,运行在一个完全隔离环境中的计算机系统
- JVM是指通过软件来模拟Java字节码的指令集,是Java程序的运行环境
上图是Java编译过程到JVM虚拟机的执行过程JVM主要功能
- 1.通过ClassLoader寻找和装载class文件
- 2.解释字节码成为指令并执行,提供class文件的运行环境
- 3.进行运行期间的内存分配和垃圾回收
- 4.提供与硬件交互的平台
虚拟机是Java平台无关的保障
上图可以看出:java的开发过程是平台无关的,但是Java虚拟机是平台相关的。我们开发的程序编译后,由Java虚拟机去解释执行字节码文件,由虚拟机帮组我们在各个平台去执行,也就是我们编写了一套代码可以在多个平台执行。JVM规范作用及其核心
理解JVM规范的作用
- Java虚拟机规范为不同的硬件平台提供了一种编译Java技术代码的规范
- 该规范使Java软件独立于平台,因为编译是针对作为虚拟机的”一般机器”而做。虚拟机规范不仅可以做到平台无关,更上一步也可以做到语言无关。只要该语言编译出的字节码符合虚拟机规范,虚拟机不管你是什么语言,都可以执行。
- 这个”一般机器”可用软件模拟并运行于各种现存的计算机系统,也可用硬件来实现。
了解JVM规范里面规定的主要内容
JVM规范里面规定的主要内容-1
- 字节码指令集(相当于中央处理器CPU)
- Class文件的格式
- 数据类型和值
JVM规范里面规定的主要内容-2
- 运行时数据区
- 栈帧
- 特殊方法
:实例初始化方法,通过JVM的invokespecial指令来调用 :类或接口的初始化方法,不包含参数,返回void
JVM规范里面规定的主要内容-3
- 类库(Java虚拟机必须要对一些Java类库提供支持,否则这些类库根本无法实现,比如下面一些)
- 反射
- 加载或者创建类或接口,比如ClassLoader
- 连接和初始化类和接口的类
- 安全,如security
- 多线程
- 弱引用
- 异常
- 虚拟机的启动,加载,链接和初始化