在操作系统的命令行,输入java -version,即可看到当前 JDK 采用的是哪种版本的虚拟机 。
文章插图
图片
三、虚拟机简介说起 Java 虚拟机 , 许多开发者可能首先会想到 HotSpot 虚拟机,正如上文的截图部分 。
实际上 Java 虚拟机除了 HotSpot 之外,还有 Sun Classic VM、Exact VM、BEA JRockit VM、IBM J9 VM等等,虚拟机的发展过程,可以用百花齐放这四个字来概括 。
3.1、Sun Classic VM在 1996 年,Sun 发布 JDK 1.0 时,其中自带的虚拟机就是 Classic VM 。这款虚拟机使用的是纯解释器的方式来执行 Java 代码 , 简单的说就是边解释边运行代码,并非像现在这样通过编译器的方式来执行代码(先编译、后执行) 。在 Sun Classic 虚拟机中,解释器与编译器无法共同存在 , 因此 Java 应用程序执行速度上肯定快不起来,只能说够用 。
在 1998 年,Sun 在发布 JDK 1.2 时,同时也公布了一款名为 Exact VM 的虚拟机,这款虚拟机尝试解决了 Classic VM 遇到的所有问题 。它的执行系统解决了 Classic VM 存在的解释器和编译器无法同时工作的问题,同时还具备了一些现代高性能处理器的特性 , 如:两级即时编译、准确式内存管理等 。
但可惜的是,这款虚拟机一直没有真正被大规模使用过,此时 Sun Classic VM 依然作为默认的 Java 虚拟机 。
3.2、HotSpot VM在 2000 年,Sun 在发布 JDK 1.3 时,公布将 HotSpot VM 作为默认的 Java 虚拟机 , 也就是大家广为流传的 Java 虚拟机 。
实际上,这个虚拟机并不是由 Sun 公司原生开发的,而是由一个叫 Longview Technologies 公司开发的,Sun 公司注意到了这款虚拟机在 JIT 编译上的许多优秀成果,于 1997 年收购了 Longview Technologies 公司 , 从而获得了 HotSpot VM 的所有权 。
HotSpot VM 不仅仅有前面说到两款虚拟机的优点,也有许多自己的新技术,例如:热点探测技术 。热点探测技术指的是通过执行计数器找出最具优化价值的代码 , 然后通知 JIT 编译器以方法为单位进行深度优化编译 。
其实 Exact VM 中也有类似的技术,但最终还是选择了 HotSpot 作为默认的虚拟机 。
HotSpot VM 作为默认的 Java 虚拟机之后,直到现在 , 依然是我们最常用的虚拟机,可见 HotSpot VM 的生命力之顽强!
3.3、BEA JRockit / IBM J9 VM前面说的是 Sun 公司研发的虚拟机,但除了 Sun 公司之外,其他组织、公司也研发过不少的虚拟机实现,其中最著名的就是 BEA 公司的 JRockit VM 和 IBM 公司的 J9 VM 了 。
JRockit VM 是除 HotSpot 之外另一款响当当的虚拟机,BEA 公司在 2002 年收购的了此虚拟机的开发商 。这款虚拟机在相当一段时间里获称世界上速度最快的 Java 虚拟机 , 它是一款专注于服务器端应用的虚拟机,并且它的垃圾收集算法相比其它所有虚拟机表现更佳;此外,其提供的 MissionControl 服务套件也十分强大 。
IBM 公司的 J9 VM 则是一款比较通用的虚拟机,其定位应用于从服务端到桌面应用,再到嵌入式的多用途虚拟机 。IBM 公司开发 J9 VM 的目的是将其作为 IBM 公司各种 Java 产品的执行平台 。稍有不同的是,IBM J9 VM 都只能跟 IBM 产品一起使用,虽然不存在技术限制,但是需要单独的商业许可证 。
J9 VM 的性能水平大致跟 HotSpot VM 是一个档次的,在一些场景下,有时 HotSpot VM 快些 , 有时 J9 VM 快些 。
3.4、其它 JVMHotSpot、JRockit 和 J9 这三个虚拟机 , 曾经在很长的时间并称三大主流 JVM,可以说是 Java 虚拟机发展史上比较耀眼的部分 。除此之外,其实还有各种各样的小范围使用的虚拟机 。
例如 Azul VM 和 BEA Liquid VM 的专用商业虚拟机,性能非常强悍,可以管理至少数十个 CPU 和数百 GB 的内存资源,还提供在巨大内存范围内实现可控 GC 时间的垃圾收集器等等,这些虚拟机只运行在特定硬件平台,因此要求也比较高 。
此外还有许许多多其他的虚拟机存在,例如:Apache Harmony、google Android Dalvik VM、Mircosoft JVM 等等,都在各自领域发挥作用 。
推荐阅读
- Rust 最受欢迎的这些库
- 《南来北往》:贾金龙真实身份是什么?跟人贩子无关,却也不是善茬
- 一个人经常“间歇性回你微信”,说明了什么
- 冰箱老结冰,不是冰箱问题,动一动冰箱这地方,冰箱不结冰更省电
- 不管客厅有多大,电视机旁不放这四种东西,这可不是迷信!
- 什么是情商?情商高的人什么样?
- 四大镇宅之树是哪些
- 中国的导演们!请你们看看《第二十条》导演是怎样拍穷人的
- 胡海泉究竟有多能装?深藏不露18年,其实他才是娱乐圈里最狠的人
- 大名鼎鼎的6部R级重口电影,全部通关的都是狠人