如何建立一个大型的网站,wordpress paypal,加强思政部网站建设,免费网站建设找云狄目录
一、Java虚拟机整体架构祥图
二、Java代码执行过程详图
三、汇编语言、机器语言、高级语言关系
四、JVM的架构模型
五、JVM的生命周期
#xff08;一#xff09;虚拟机的启动
#xff08;二#xff09;虚拟机的执行
#xff08;三#xff09;虚拟机的退出 …目录
一、Java虚拟机整体架构祥图
二、Java代码执行过程详图
三、汇编语言、机器语言、高级语言关系
四、JVM的架构模型
五、JVM的生命周期
一虚拟机的启动
二虚拟机的执行
三虚拟机的退出
六、JVM发展历程
一sun Classic VM
二Exact VM
三hotspot虚拟机
四JRockit
五IBM J9
六 Azul VM
七Liquid VM
八Apache Harmony
九TaobaoJVM
十Dalvik VM 一、Java虚拟机整体架构祥图 二、Java代码执行过程详图 三、汇编语言、机器语言、高级语言关系 四、JVM的架构模型
Java的编译器输入的指令流基本上是一种基于栈的指令集架构另外一种指令集架构则是基于寄存器的指令集架构
两种架构的区别
基于栈式架构
1、优点
设计和实现简单适用于资源受限的系统避开了寄存器的分配难题使用零地址指令方式分配指令流中大部分都是零地址指令其执行过程依赖操作栈指令集更小编译器容易实现 8位字节码所以说指令集更小但是完成一项操作花费的指令相对多。不需要硬件支持可移植性更好更好实现跨平台
2、缺点
性能下降实现同样的功能需要更多的指令毕竟还要入栈出栈等操作
基于寄存器架构
1、优点
性能优秀执行更高效花费更少的指令去完成一项操作
2、缺点
指令集架构完全依赖硬件可移植性差
3、典型应用是X86的二进制指令集比如传统的PC以及安卓的Davlik虚拟机16位字节码
大部分情况下指令集往往以一地址指令二地址指令和三地址指令为主。 为什么说栈式花费的指令多 我们可以通过javap命令反编译一个文件查看其计算流程 javap 查看字节码 -v输出附加信息-l输出行号和本地变量表-p显示所有类和成员-c对代码进行反汇编 五、JVM的生命周期
一虚拟机的启动
通过引导类加载器bootstrap class loader创建一个初始类来完成的这个类是由虚拟机的具体实现指定的。
二虚拟机的执行
执行一个所谓的Java程序的时候真正执行的是一个叫Java虚拟机的进程
三虚拟机的退出
程序正常执行结束执行过程遇到异常或错误而异常终止操作系统错误导致Java虚拟机进程终止Runtime类或System类的exit方法、runtime类的halt方法并且Java安全管理器允许这次exit或halt操作 halt停止、停下、阻止exit方法源码static native void halt0int statusJNI(Java Native Interface)规范描述了用JNI Invocation API来加载或卸载Java虚拟机时Java虚拟机退出的情况
六、JVM发展历程
一sun Classic VM
世界第一款商用Java虚拟机JDK1.4时被淘汰只提供了解释器如果使用JIT编译器就需要外挂但是JIT和解释器不能配合工作
二Exact VM
为了解决上一个虚拟机问题JDK1.2时sun提供了此虚拟机Exact Memory Management准确式内存管理 虚拟机知道内存中某个位置的数据是什么类型具有现代高性能虚拟机的雏形 热点探测编译器与解释器混合工作模式只在Solaris平台短暂使用其他平台还是Classic vm 英雄气短被hotspot虚拟机替换
三hotspot虚拟机
最初由Longview Technologies的小公司设计1997年被sun公司收购2009年sun公司被甲骨文收购JDK1.3时HotSpot VM成为默认虚拟机绝对市场地位称霸武林 JDK6,8等均默认HotSpot就是他的热点代码探测技术 通过计数器找到最具编译价值代码触发即时编译或栈上替换通过编译器与解释器协同工作在优化响应时间和最佳执行性能中取得平
四JRockit
BEA公司专注服务器端应用 不太关注程序启动速度引起JRockit内部不包括解析器实现全部代码靠即时编译器编译后执行世界上最快的JVM全面的Java运行时解决方案组合 JRockit Real Time提供毫秒或微秒级的JVM响应时间适合财务、军事指挥电信网络的需要MissionControl服务套件极低的开销来监控、管理和分析生成环境中的应用程序的工具2008年BEA被oracle收购JDK8中在HOTSPOT的基础上移植JRockit的优秀特性
五IBM J9
全称IBM Technology for java Virtual Machine 简称IT4J内部代号J9市场定位与HotSpot接近服务器端、桌面应用嵌入式等多用途VM广泛应用于IBM的各种Java产品 IBM产品结合使用性能最好有影响力的三大商用虚拟机之一2017开源OPEN J9
六 Azul VM
与特定硬件平台绑定、软硬件配合的专有虚拟机运行于Azul Systems公司的专有硬件Vega系统上的虚拟机每个实例可以管理至少数十个CPU和数百GB内存的硬件资源并提供在巨大内存范围内实现可控的GC时间的垃圾收集器专有硬件优化的线程调度等优秀特性2010年发布自己的Zing JVM可以在通用X86平台上提供接近于vega系统的特性
七Liquid VM
BEA公司开发的运行在自家Hypervisor系统上不需要操作系统支持本身实现了一个专用操作系统的必要功能如线程调度、文件系统、网络支持等随着JRockit虚拟机终止开发Liquid VM项目也停止了 八Apache Harmony
JDK1.5,1.6兼容IBM和Intel联合开发的开源JVM2011年退役Java类库代码吸纳进了Android SDK
九TaobaoJVM
基于OpenJDK开发了自己的定制版本AlibabaJDK深度定制且开源的高性能服务器版JAVA虚拟机GCIHGC invisible heap将生命周期较长的Java对象从heap中已到heap之外并且GC不能管理GCIH内部的Java对象以此达到降低GC的回收频率和提升GC的回收效率GCIH中的对象还能够在多个JAVA虚拟机进程中实现共享使用crc32指令实现JVM intrinsic降低JNI的调用开销针对大数据场景的ZenGC在阿里产品上性能高硬件严重依赖intel的CPU损失了兼容性但是提高了性能淘宝、天猫上线把oracle官方JVM版本全部替换
十Dalvik VM
谷歌开发应用于Android系统安卓2.2提供了JIT发展迅猛只能称作虚拟机不能称作Java虚拟机没有遵循Java虚拟机规范不能直接执行Java的Class文件基于寄存器架构不是jvm的栈架构执行的是编译后的dex文件执行效率比较高安卓5.0使用支持提前编译AOT的ART VM替换Dalvik VM