Java虛擬機(1):認識Java技術體系及虛擬機 Java技術體系 Java虛擬機

Java技術體系

按功能劃分

  • Java程序設計語言

  • 各種硬件平臺上的Java虛擬機實現

  • Class文件格式

  • Java類庫API

  • 來自商業機構和開源社區的第三方Java類庫

  • JDK java Development Kit (Java開發最小運行單位Java程序設計語言、Java虛擬機、Java類庫)

  • JRE Java runtime environment (Java運行環境Java類庫API中的Java SE API子集和Java虛擬機)

按服務對象劃分

  • Java Card:支持Java小程序(Applets)運行在小內存設備(如智能卡)上的平臺。

  • Java ME(Micro Edition):支持Java程序運行在移動終端(手機、PDA)上的平臺,對Java API有所精簡,並加入了移動終端的針對性支持。

  • Java SE(Standard Edition):支持面向桌面級應用(如Windows下的應用程序)的Java平臺,提供了完整的Java核心API。

  • Java EE(Enterprise Edition):支持使用多層架構的企業應用(如ERP、MIS、CRM應用)的Java平臺,除了提供Java SE API外,還對其做了大量有針對性的擴充,並提供了相關的部署支持。

Java虛擬機

HotSpot虛擬機(官方JDK均採用HotSpot VM),BEA JRockit(被Oracle 收購後不再開發)和IBM J9虛擬機;

Zing虛擬機,特定設備,是一個從HotSpot某舊版代碼分支基礎上獨立出來重新開發的高性能Java虛擬機;

Apache Harmony ,沒有真正地被大規模商業運用過,但是它的許多代碼(主要是Java類庫部分的代碼)被吸納進IBM的JDK 7實現以及Google Android SDK之中,尤其是對Android的發展起了很大推動作用;

Google AndroidDalvik VM,Android 4.4時代,支持提前編譯(Ahead Of Time,AOT)的ART虛擬機迅速崛起,Android 5.0裏ART就全面代替了Dalvik虛擬機;

Graal VM被官方稱爲“Universal VM”和“Polyglot VM”,這是一個在HotSpot虛擬機基礎上增強而成的跨語言全棧虛擬機,可以作爲“任何語言”的運行平臺使用,這裏“任何語言”包括了Java、Scala、Groovy、Kotlin等基於Java虛擬機之上的語言,還包括了C、C++、Rust等基於LLVM的語言,同時支持其他像JavaScript、Ruby、Python和R語言等。Graal VM可以無額外開銷地混合使用這些編程語言,支持不同語言中混用對方的接口和對象,也能夠支持這些語言使用已經編寫好的本地庫文件;

Substrate VM,是一個構建在Graal Compiler上的,支持ahead-of-time (AOT) compilation的編譯及運行框架。

接下來會進一步閱讀《深入理解Java虛擬機》,並進行更多內容的記錄、講解。

歡迎點贊/評論,你們的贊同和鼓勵是我寫作的最大動力!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章