- 对于jvm虚拟机的基本理解
跨语言:只要编译器生成的字节码文件符合jvm的股份就支持
分多种虚拟机:各家基于jvm规范的实现,目前主流的是HotSpot、JRockit - jvm的架构模型
基于栈指令集机构(jvm使用)
设计简单、零地址指令、指令集少,但是相同操作指令多、不需要硬件支持、可移植性好,更好的实现跨平台
基于寄存器指令集加工
指令集依赖于硬件、性能优秀、可移植性差、指令集往往是一指令、二指令、三指令 - jvm的生命周期
jvm的启动:通过引导类加载器创建一个初始类来启动,这个类是由虚拟机的具体实现指定的
jvm的执行:程序开始执行时才执行,查询结束时结束。执行java程序实际执行的是jvm虚拟机
jvm的退出:
正常执行结束
程序因为异常而中止
操作系统错误导致jvm退出
主动调用Runtime或System类的exit()方法,或Runtime的halt方法
JNTjvm的发展历程
现在的jvm虚拟机都是由解释器和JIT(即时编译器)协同工作
JIT对于多次执行的代码(热点代码)缓存,提高执行效率
jvm虚拟机种类
Oracle:HotSpost、JRockit
IBM:J9
HotSpost:解释器和编译器协调工作,取平衡
JRockit:完全使用即时编译器,号称最快的虚拟机
J9:在IBM自己的产品上使用快
所有虚拟机的原则:一次编译,到处运行
JVM 了解
于 2022-03-19 21:06:59 首次发布