国外网站建设公司,石家庄做网站设计,php网站开发环境配置,国内外免费域名解析网站目录 一、说明二、java代码的执行流程三、jvm的架构模型3.1 基于栈式架构的特点3.2 基于寄存器架构的特点 一、说明 1.hotspot vm是目前市场上高性能虚拟机的代表作之一 2.hotspot采用解释器与即时编译器并存的架构 3.java虚拟机是用来解释运行字节码文件的#xff0c;入口是字… 目录 一、说明二、java代码的执行流程三、jvm的架构模型3.1 基于栈式架构的特点3.2 基于寄存器架构的特点 一、说明 1.hotspot vm是目前市场上高性能虚拟机的代表作之一 2.hotspot采用解释器与即时编译器并存的架构 3.java虚拟机是用来解释运行字节码文件的入口是字节码文件 4.类装载子系统将字节码文件加载到内存中生成一个大的class对象这个过程中会涉及到加载、链接、初始化 5.方法区和堆可以多个线程共享 6.虚拟机栈、本地方法栈和程序计数器是每个线程独有一份 7.执行引擎分为解释器、JIT及时编译器和垃圾回收器 8.字节码加载到内存中后会用到解释器来解释运行对于反复执行的热点代码会利用及时编译器提前编译出来 9.java代码编译成class文件叫编译器的前端及时编译器提前编译代码叫编译器的后端 10.垃圾回收器实现垃圾的自动回收 11.操作系统只能识别机器指令字节码指令不等同于机器指令字节码文件能够被解释执行需要执行引擎把字节码指令翻译成机器指令
二、java代码的执行流程 1.java程序通过编译这个过程有词法分析、语法分析、语法/抽象语法树、语义分析、注解抽象语法树和字节码生成器生成字节码文件编译过程有任何一个环节失败了都不能生成字节码文件每个字节码文件对应着一个类 2.字节码文件通过jvm虚拟机执行经过类加载器、字节码校验器、执行引擎解释器翻译字节码解释执行和JIT编译器编译执行成为机器指令被操作系统执行 3.主流的虚拟机都采用解释执行和编译执行并行的方式解释器用来保证响应时间逐行对字节码指令进行解释执行JIT编译器针对于反复执行的热点代码再编译成机器指令同时把这个机器指令放入方法区缓存起来下次可以直接调用保证执行的性能
三、jvm的架构模型 1.java编译器输入的指令流基本上是一种基于栈的指令集架构另一种指令集架构是基于寄存器的指令集架构 2.hotspot虚拟机除了pc寄存器之外没有其它寄存器任何操作都需要入栈和出栈的操作因此hotspot虚拟机是基于栈的指令集架构 3.由于跨平台性的设计java的指令都是根据栈来设计的。不同平台cpu架构不同因此不能设计为基于寄存器架构 4.优点是跨平台指令集小编译器容易实现 5.缺点是性能下降实现同样的功能需要更多的指令
3.1 基于栈式架构的特点 1.设计和实现更简单适用于资源受限的系统 2.避开了寄存器的分配难题使用零地址指令方式分配 3.指令流中的指令大部分是零地址指令其执行过程依赖于操作栈。指令集更小编译器容易实现 4.不需要硬件支持可移植性更好更好实现跨平台
3.2 基于寄存器架构的特点
1.典型应用是x86的二进制指令集例如传统的PC以及Android的Davlik虚拟机2.指令集架构则完全依赖硬件可移植性差3.性能优秀和执行更高效4.花费更少的指令去完成一项操作5.大部分情况下基于寄存器架构的指令集往往都以一地址指令、二地址指令和三地址指令为主而基于栈式架构的指令集是以零地址指令为主