初识JVM
1.1 什么是JVM
JVM是Java虚拟机, 本质上是一个运行在计算机的程序,职责是运行Java的字节码文件.
Java源代码执行流分为三个步骤:
1、编写Java源代码文件。
2、使用Java编译器(javac命令)将源代码编译成Java字节码文件。
3、使用Java虚拟机加载并运行Java字节码文件,此时会启动一个新的进程。
1.2 JVM的组成
Java虚拟机主要分为以下几个组成部分:
- 类加载子系统:核心组件类加载器,负责将字节码文件中的内容加载到内存中。
- 运行时数据区:JVM管理的内存,创建出来的对象、类的信息等等内容都会放在这块区域中。
- 执行引擎:包含了即时编译器、解释器、垃圾回收器,执行引擎使用解释器将字节码指令解释成机器码,使用即时编译器优化性能,使用垃圾回收器回收不再使用的对象。
- 本地接口:调用本地使用C/C++编译好的方法,本地方法在Java中声明时,都会带上native关键字,允许 Java 代码使用操作系统特性或访问硬件。
1.3 JVM的功能
- 1 - 解释和运行
对字节码文件中的指令,实时的解释成机器码,让计算机执行。
字节码文件中包含了字节码指令,计算器无法直接执行,Java虚拟机会将字节码文件中的字节码指令实时地解释成机器码,机器码是计算机可以运行的指令。 - 2 - 内存管理
自动为对象、方法分配内存空间
自动的垃圾回收机制, 回收不再使用的对象 - 3 - 即时编译
通过动态地将字节码编译成本地机器码,并对热点代码进行优化然后保存到内存中,显著提高了Java程序的运行效率,同时保持了Java语言的跨平台性和灵活性
1.3 常见JVM
平时我们最常用的,就是Hotspot虚拟机。