1. 程式人生 > >深入理解java虛擬機一之走進Java

深入理解java虛擬機一之走進Java

全面 存在 添加 執行 默認 嵌入式 12月 服務器端 深入理解

Java技術體系

Java程序設計語言、Java虛擬機、Java API類庫統稱為JDK
Java API類庫中Java SE API子集和Java虛擬機統稱為JRE

Java發展史

1991年4月 Java語言的前身-Oak語言啟動
1995年5月 Oak改名為Java並發布1.0版本 Write Once,Run Anywhere
1996年1月 JDK 1.0版本發布 提供的Java虛擬機實現(Sun Classic VM) 、Applet、AWT
1997年2月 JDK 1.1版本發布 提供了JAR文件格式、JDBC、JavaBeans、RMI
1998年12月 JDK1.2版本發布 Java拆分如下三個方向,虛擬機添加HotSpot VM

Exact VM
Java ME 支持Java程序運行在移動終端的平臺
Java SE 支持面向桌面級應用的Java平臺
Java EE 支持使用多層架構的企業應用的Java平臺

2000年5月 JDK 1.3版本發布 默認虛擬機改為HotSpot VM
2002年2月 JDK 1.4版本發布 提供正則表達式、異常鏈、NIO、XML解析器和XSLT轉換器等
2004年9月 JDK 1.5版本發布 提供了自動拆箱、泛型、動態註解、枚舉、可變長參數、遍歷循環(foreach)等語法特性,提供了java.util.concurrent並發包等,改進了Java內存模型
2006年12月 JDK 1.6版本發布 提供動態語言支持、提供編譯API和微型HTTP服務器API等,對Java虛擬機內部做了大量改進
2009年2月 JDK 1.7版本發布 提供新的G1收集器、加強對非Java語言調用支持、升級類加載架構
2009年4月 Oracle公司宣布以74億美元收購Sun公司

Java虛擬機發展史

Sun Classic / Exact VM
  • Sun Classic 是世界第一款商用Java虛擬機,這款虛擬機只能以純解釋器方式執行代碼,不能與編譯器配合工作,因此執行效率與傳統C/C++程序有很大差距;
  • 為了提升Classic VM的運行效率,在JDK 1.2版本時Sun發布了Exact VM虛擬機,具備兩級即使編譯器、編譯器與解釋器混合工作模式以及準確式內存管理。雖然Exact VM比CLassic VM先進不少,但是它只存在了很短的時間就被HotSpot VM取代
Sun HotSpot VM

HotSpot VM是Sun在1997年收購Longview Technologies

公司從而獲得的,它既繼承了Sun之前兩款虛擬機的優點,也有許多自己新的優勢,比如熱點代碼探測技術。

BEA JRockit / IBM J9 VM
  • JRockit VM曾號稱“世界上速度最快的Java虛擬機”,BEA將其發展為專門為服務器硬件和服務端應用場景高度優化的虛擬機,不太關註程序啟動速度,不包含解析器實現。
  • J9 VM是由IBM Ottawa實驗室一個名為SmallTalk的虛擬機擴展而來,是一款設計上從服務器端到桌面應用再到嵌入式都全面考慮的多用途虛擬機
Azul VM / BEA Liquid VM
  • Azul VM是Auzl Systems公司在HotSpot基礎上大量改進,運行於專有硬件Vega系統上的Java虛擬機
  • Liquid VM即是現在的JRockit VE,是BEA開發運行在自家Hypervisor系統上的JRockit VM的虛擬化版本
其它VM

深入理解java虛擬機一之走進Java