JVM的生命周期
JVM的生命周期包括JVM的启动、JVM的运行和JVM的退出。
- 启动是通过引导类加载器创建一个初始类来完成的,这个初始类是由具体的虚拟机实现指定的。
- 退出是通过包括正常退出和异常退出,正常退出包含程序正常结束以及程序调用RunTime类或System类的exit方法,异常退出包含程序运行异常和操作系统异常
HotSpot
2006年底开源,主要使用C++实现,JNI接口部分用C实现。HotSpot是较新的Java虚拟机,使用JIT编译器可以大大提高Java运行的性能。
Java原先是将源代码编译为字节码在虚拟机执行这样执行速度较慢,而HotSpot将常用的代码编译为本地代码,这样显著提高了性能
JVM架构
类加载子系统、程序计数器、栈(本地方法栈,虚拟机栈)、方法区、堆、执行引擎、本地方法接口