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虛擬機》,並進行更多內容的記錄、講解。
歡迎點贊/評論,你們的贊同和鼓勵是我寫作的最大動力!