第二篇:JVM之JVM架构和各大虚拟机概述

第二篇:JVM之JVM架构和各大虚拟机概述,第1张

第二篇:JVM之JVM架构和各大虚拟机概述

从第三篇文章开始,写文章顺序都是按着下面这两张图来写的,过程都是按着从上到下的顺序写。

1、JVM的架构模型

总之,咱们的java的指令都是根据栈来设计的,目的就是为了JVM的跨平台性。因为咱们都知道的是,基于寄存器的话,耦合就吧比较高,导致移植性不好。缺点和优点:跨平台性好,指令集比较小(因为是0地址指令集),指令多,执行性能比寄存器较差。 (1)Idea怎么实现反编译

第一步可以先执行你想要反编译的文件,看我的例子
第二步就来看我们的out目录【进去找到你刚才执行的一个文件】

第三步点这里
最后执行一条指令javap -v 你的文件
(2)一个问题


这里的嵌入式系统的话:另外一层含义就是资源受限的,原因主要是

就是它的优点还是在的,优点比较多,移植性好等。它在资源不受限的情况也是可以用的,没有必要硬是给他更换了。 2、JVM的生命周期

假设你在web服务器部署了三个web服务器,就可以用三个虚拟机执行。

具体的方法可以去看一下我们的源代码

记得看一下这运行时数据区域和我们的Runtime类

(1)在idea显示你执行的进程

3、JVM的分类

不管怎么样,前面五个你要记住的

(1)Sun classic VM

记得它是世界最早的一个商用虚拟机它只提供了解释器【也就是没有提供JIT编译器,现在主流的都实现了解释器和编译器的,解释器是边解释边执行的,会使启动速度比较快;而JIT编译器则是先翻译再执行,执行效率比较高】
想我们不是把全部的代码都用JIT呢?因为他等的时间比较多。 (2)Exact VM

它的优点最重要的是:虚拟机可以知道内存中某个位置的数据具体是什么类型。这样的优点你可以这样理解,因为我们虚拟机进行垃圾回收的时候,需要去查找我们的数据是应用类型还是基本类型,它这样可以减少开销。还有它进行热点探测:它只是有了个大概的模型,具体应用是在Hotspot里面来引用了。 (3)HotSpot VM

它是兼容了解释器和JIT编译器,因此它的应用非常广泛,但下面要讲的JRockit Vm则是实现了JIT编译的,它适合于服务器,它这样就效率比较高。 (4)JRockit VM

它是最快的啊,世界上,不要相信IBM的J9
他们两个公司都被Oracle收购后,因此有想把JRockit和Hotspot的优点整合到一起的想法,所有在JDK8吧,就整合到一部分优点在一起了,但是他们两个的架构开始就不一,导致整合很困难,所以整合在一起的内容是有限的。 (5)IBM J9

它现在也是属于IBM公司的,IBM是没有被收购的哦。它比较适合它自己的产品上,但是在其他系统上面使用的话,bug是比较多的。 (6)K VM和CDC/CLDC HotSpot

(7)Azul VM和Liquid VM


(8)Apache Harmony

(9)Microsoft JVM

(10)Taobao JVM

(11)Dalvik VM【是基于寄存器】

apk文件,可以去补习一下。

还有其他的,另外虚拟机都是有不同的好处的,不同的应用场景会有不同的性能。

(12)补充Graal VM【看Oracle公司野心】

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5707724.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存