Java虚拟机发展史

来源:互联网 发布:手机淘宝如何退保证金 编辑:程序博客网 时间:2024/06/05 00:31
作者:Javdroider Hong
链接:https://www.zhihu.com/question/29265430/answer/209699247
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

Java虚拟机发展史
从1996年初Sun公司发布的JDK1.0中所包含的Sun Classic VM到今天,曾经涌现和湮灭过许多经典的虚拟机,接下来让我们一起回顾一些Java虚拟机的发展轨迹。

1、Sun Classic VM 第一款商用Java虚拟机
1996年1月23日,Sun公司发布JDK1.0,Java首次拥有了商用的正式运行环境——Sun Classic VM。
然而这款虚拟机十分缓慢,原因是它不能是解释器和编译器混合工作,也就是要么只使用纯解释器,这样运行时速度会很慢,要么使用纯编译器,这样必须对每一个方法、每一行代码进行编译,编译耗时会很高。“Java语言很慢”的形象就是在这时候在用户心中树立起来的。

2、Exact VM 现代高性能虚拟机的雏形
为了解决Sun Classic VM所面临的各种问题,Sun发布了一台名为Exact VM的虚拟机,这款虚拟机的执行系统,已经具备现代高性能虚拟机的雏形——两级即时编译器、编译器和解释器混合工作模式等,同时Exact VM采用准确式内存管理,即虚拟机可以知道内存某个位置的数据具体是什么类型,即这个位置是一个指向数字123的内存的reference,还是就是数字123,这样在垃圾收集时可以准确判断这些数据是否可用(后面课程会详细解释,这里读者只需了解一下即可),大大提高了垃圾回收的效率。
虽然Exact VM在技术上比Sun Classic VM先进了许多,但是很快,就被更为优秀的HotSpot VM所取代。

3、Sun HotSpot VM JDK默认虚拟机
我们现在上Oracle官网,下载JDK,自带的虚拟机,就是HotSpot。
然而,HotSpot最初并非Sun公司开发的,而是由一家名为“Longview
Technologies”的小公司设计的,甚至这款虚拟机一开始也不是为Java语言开发的,Sun公司注意到了这款虚拟机在JIT编译技术(Just
In Time,即时编译技术)上有许多优秀的理念,在1997年收购了这家公司,获得了HotSpot VM。
HotSpot VM的最大特点,正如其名,就是热点代码探测能力,这项能力,可以通过执行计数器,找出最具有编译价值的代码,然后通知JIT编译器进行编译,通过编译器和解释器的协同合作,在最优程序响应时间和最佳执行性能中取得平衡。
在2008年和2009年,oracle分别收购了BEA和Sun,这样Oracle就同时拥有了两款优秀的Java虚拟机:JRockit VM和HotSpot VM,Oracle将这两款虚拟机的优势进行整合,打造出更加优秀的HotSpot.
原创粉丝点击