JVM
是
Java Virtual Machine
(
Java
虚拟机
)
的缩写
,
是实现
java
跨平台特性的关键。
Java
虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令进行执行,这样实现了
Java“
一次编译,到处运行”。此外,虚拟机并不关心
class
文件的来源,也就是说其它语言只要编译成符合
jvm
相关规范的
class
文件,都能被虚拟机
识别。因此
jvm
不但可以跨平台,还可以跨语言。
目前
java
虚拟机大致分为二类,即通用平台虚拟机跟特定硬件平台专用虚拟机。平时所提及的高性能
java
虚拟机一般是指
HoptSpot
、
Jrockit
、
J9
等之类的通用平台商用虚拟机
Sun
HotSpot
VM
是
JDK
跟
OpenJDK
中所带的虚拟机
,
也是目前使用范围最广的虚拟机。它继承了
SUN
之前两款虚拟机的优点,同时也有自己新的技术优势。
JVM
的学习主要分为三大类
1.自动内存管理机制
运行时数据区、垃圾回收及自动内存分配机制、内存模型等
2.class文件规范及类加载机制
class文件结构及相关指令、类加载机制及相关类加载器、虚拟机
字节码执行引擎
3.虚拟机各类优化
垃圾回收优化、程序运行期优化、线程锁优化等…