持续更新JVM相关知识,敬请关注:
Java虚拟机精髓专栏zhuanlan.zhihu.com你知道市面上常用的JVM有哪些吗?JVM的发展历程如何?这些问题问出来后,是不是很多小伙伴一脸懵逼呢?大多数人可能并不知道JVM就像数据库一样,有Oracle、Mysql、SQLServer、MongoDB等等,有很多类似产品,应用在不同场景,都可能误以为不就是运行JAVA程序的环境吗?怎么还有很多呢?
其实,JVM随着时间和应用场景的不同,出现了很多的版本,他们之间有着很大的差异。我们所熟知的,不过是目前集成在OracleJDK及OpenJDK中的HotSopt虚拟机。大家平常所说的JVM,也就指的是HotSopt虚拟机,大家可以通过java -version命令去验证下:
下面介绍一些有代表性的虚拟机产品:
1、Sun Classic VM,这是第一个商用的虚拟机,在jdk1.4的时候淘汰掉,他只提供了解释器。解释器是什么意思,大家在这里先不用去纠结他,后面讲JVM的结构中会详细讲解。
2、Exact VM,这是jdk1.2时期的虚拟机,可提供准确式的内存管理,可知道内存中某个位置到底存储的是什么内容。
3、HostSopt VM,应用最为广泛,最被人所熟知的虚拟机,jdk1.3时开始默认,他的名称含义是热点代码探测,这就意味着,HostSopt有着JIT及栈上替换的能力。
4、JRockit VM,最早是由BEA公司推出的,后BEA被Oracle收购,他专注于服务端,无解释器,全部靠即时编译。所以被称为最快的虚拟机。
5、IBM的J9,在IBM内部的各种Java产品中广泛应用,由于做了特殊优化,性能非常出色,但是在IBM以外的Java产品,则会出现很多未知的BUG。
6、Alibaba JVM,同IBM的J9类似,是阿里巴巴推出的虚拟机产品,同样应用于内部Java产品效果良好。
7、Graal VM,跨语言的运行平台,通过解释器将多语言转化为能接受的中间语言。
HotSpot的用户群体庞大,后续的相关介绍,也会主要基于它进行讲解。