1、JVM整体结构图
2、JVM生命周期
- 虚拟机启动:通过引导类加载器创建初始类来完成,初始类由虚拟机指定
- 虚拟机运行:实际上执行的是JAVA虚拟机进程
- 虚拟机退出:程序正常结束;程序异常终止;OS出现错误;线程调用System类的exit方法、Runtime的halt方法;
3、JIT即时编译器
- 和解释器不同,解释器是解释一行执行一行,JIT是将常用的代码解释(解释时要暂停运行)后存入缓存,JIT代码多了启动慢,且缓存不足。所以解释器响应时间快,JIT没有那么快响应,但是响应后执行快。
4、SUN classic:
- JIT和解释器不能同时使用
5、Exact VM:
- 准确内存管理:虚拟机可以知道内存中某个位置数据的具体类型
- 高性能雏形:热点探测(探测什么是高频代码,用JIT执行);JIT和解释器混用
6、三大商用虚拟机
- Hotspot VM、JRockit、J9
7、Hotspot VM
- 默认的虚拟机就是Hotspot VM
- 嵌入式、桌面应用、服务器都有应用
- 名称中的hotspot就是热点代码探测技术,通过计数器找到最具编译价值代码,触发即时编译或栈上替换;JIT和解释器协同工作,在响应时间(解释器负责)和执行性能(JIT负责)中取得平衡
8、BEA公司(甲骨文收购)的JRockit虚拟机
- 专注于服务器应用:不要求程序启动速度,所以没有解析器实现,所有代码由JIT执行
- 最快的虚拟机:代码由JIT执行,所以快
- 优势:全面的JAVA运行时解决方案组合,提供毫秒、微秒级别的JVM响应时间;MissionControl服务套件,用极低开销监控、管理环境中的应用程序
9、IBM公司的J9
- 用于嵌入式、桌面应用、服务器,各种IBM的JAVA产品
- 号称最快的Java虚拟机(IBM内部产品)