JVM与Java体系结构
2021-09-11 17:24:05 1 举报
JVM与Java体系结构
作者其他创作
大纲/内容
生命周期
结束
《Java编译原理》
编译过程
注解抽象语法树
1. Sun Class VM 第一个商用虚拟机,仅支持解释器工作,如果使用编译器则会全面接管解释器工作,二者不可混用。2.Exact VM 改良了上述的缺陷,高级虚拟机的雏形,实现了热点探测、编译器和解释器混合工作模式 3.HotSpot VM,现在龙头老大,支持热点探测和编译器和解释协同工作,添加了GC机制。 4.JRockit 不包含解析器实现,仅靠编译器编译完成执行,是速度最快的JVM 5.J9 与HotSpot VM 并列且类似 6.... 7.TAOBAO JVM 在HotSpot的基础上,对于GC实现了新的封装,将生命周期久的对象移出堆外,且不允许被GC扫描
框架(Spring全家桶)
JVM的架构模型是基于栈上的指令运行。架构模型共有两种,一种是基于栈上的指令集架构,另一种是基于寄存器的指令集架构。基于栈上的运行指令,指令更简单,轻松,采用零地址的指令方式,避免了分配的难题,不需要和硬件接触,缺点是指令繁多。基于寄存器的指令方式,采用一地址、二地址和三地址来运行指令,优点是指令少,性能更高,缺点是完全依赖硬件。
应用程序
执行
CPU
词法分析
操作系统
本地方法接口
语法抽象语法树
编译
随着程序的执行而执行,随着程序的结束而结束。
堆
VM虚拟机分为物理虚拟机和程序虚拟机。JVM就是程序虚拟机,是操作系统中一个运行Java程序的虚拟机进程。而物理虚拟机的典型:VM Ware
通过引导类加载器创建一个初始类来完成的
JVM(Java虚拟机)
JIT
运行时数据区
字节码文件
编译器与解释器
本地方法栈
程序计数器
源文件
虚拟机栈
逆优化
语义分析
程序启动和初始化的时候依靠解释器执行,后续程序运行的时候再考虑编译器进行性能优化,C1追求速度,C2追求质量。当后续程序运行时开启性能检测,即将调用次数最多的方法即时编译,后续再次调用则跳过编译直接解释,即简单优化:即时编译和栈上分配,C2追求质量则考虑的是激进优化。如若失败,则后续逆优化,不影响程序的执行。
二进制字节码的运行环境。把字节码解释为对应平台的机器指令执行。
执行引擎
C1
虚拟机退出的情况
JVM内部结构
方法区
解释器
分类
JVM架构模型
字节码生成器
C2
启动
1.正常的退出 2.遇到程序错误或异常 3.遇到操作系统的错误 4.手动执行System.exit 5.卸载虚拟机时强制退出
语法分析
JavaAPI(Web、网络编程)
作用
发展历程
0 条评论
下一页