Day336.执行引擎 -JVM

Posted 阿昌喜欢吃黄桃

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Day336.执行引擎 -JVM相关的知识,希望对你有一定的参考价值。

执行引擎

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jO6aJ7sx-1626965354718)(C:/Users/PePe/AppData/Roaming/Typora/typora-user-images/image-20210722204914999.png)]

一、执行引擎概述

1、概述

在这里插入图片描述

在这里插入图片描述

2、类比图示

在这里插入图片描述

在这里插入图片描述

3、工作过程

在这里插入图片描述

在这里插入图片描述


二、Java代码编译和执行过程

  • 绿色对应解释的过程
  • 蓝色对应编译的过程

在这里插入图片描述

  • javac前端编译器执行过程

在这里插入图片描述

  • 后端编译,通过JVM执行引擎

在这里插入图片描述

  • 解释器,解释过程【解释器】,翻译执行
  • 编译器,编译过程【JIT编译器】,编译但未执行
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  • 在编译器编译后,会做JIT编译缓存在方法区中;
  • 如果下次有再调用就可以直接使用缓存

在这里插入图片描述

三、机器码、指令、汇编语言

在这里插入图片描述

1、机器码

在这里插入图片描述

2、指令

在这里插入图片描述

3、指令集

在这里插入图片描述

4、汇编语言

在这里插入图片描述

5、高级语言

在这里插入图片描述

6、解释编译流程图

在这里插入图片描述

7、字节码

主要的目的是跨平台性

在这里插入图片描述

8、C、C++源程序执行过程

在这里插入图片描述


四、解释器

在这里插入图片描述

1、工作机制

在这里插入图片描述

2、解释器分类

在这里插入图片描述

3、解释器现状

在这里插入图片描述


五、JIT编译器

1、Java代码执行分类

在这里插入图片描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-N3Tkk9FH-1626965354758)(C:/Users/PePe/AppData/Roaming/Typora/typora-user-images/image-20210722215911487.png)]

  • 为什么还要保留解释器????

因为解释器响应速度快

在这里插入图片描述

2、HotSpot JVM执行方式

在这里插入图片描述

  • 案例

在这里插入图片描述

3、概念解释

在这里插入图片描述

4、热点代码&探测方式

在这里插入图片描述

在这里插入图片描述

5、方法调用计数器

在这里插入图片描述

  • JIT编译流程图
    在这里插入图片描述

  • 热度衰减

在这里插入图片描述

6、回边计数器

在这里插入图片描述

  • 回边计数器流程图

在这里插入图片描述

7、HotSpot vm 设置程序执行方式

在这里插入图片描述

在这里插入图片描述

8、HotSpot vm中JIT分类

JIT编译器分两个:↓

在这里插入图片描述

在这里插入图片描述

  • 分层编译

在这里插入图片描述

  • C1/C2编译器优化策略

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5xkduCEn-1626965354782)(C:/Users/PePe/AppData/Roaming/Typora/typora-user-images/image-20210722224107937.png)]

  • 总结

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

以上是关于Day336.执行引擎 -JVM的主要内容,如果未能解决你的问题,请参考以下文章

Java基础Day4

DAY 109 安装node.js

Day513.存储引擎 -mysql

day040: 如何理解EventLoop——宏任务和微任务篇

Day121.ElasticSearch:概述安装基本操作DSL高级查询

Day3-