Java技術體系


JVM系列隨筆主要是對《深入理解Java虛擬機:JVM高級特性與最佳實踐 第2版》的學習總結

簡述

Java優點:

  • 一次編寫,到處運行
  • 安全的內存管理和訪問機制
  • 熱點代碼檢測和運行時編譯及優化
  • 完善的應用程序接口
  • 無數的第三方類庫等

廣義上講,能夠運行於Java虛擬機上的語言及相關程序都屬於Java技術體系。

傳統意義上講,Sun定義的Java技術體系包括:

  • Java程序設計語言

  • 各種硬件平台上的Java虛擬機

  • Class文件格式

  • Java API類庫

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

JDK是支持Java開發的最小環境,包括Java程序設計語言,Java虛擬機和Java API類庫三部分

JRE是支持Java運行的標准環境,包括Java API中Java SE API和Java虛擬機

下圖為Java技術體系所包含的內容[1]

Java技術體系

主流JVM

  • Sun HotSpot VM
  • BEA JRocket VM
  • IBM J9 VM

Java技術未來

模塊化

  • Java SE動態組件支持(Dynamic Component Support for Java SE),即OSGI
  • OpenJDK的Jigsaw子項目推動Java模塊化

混合語言

虛擬機不和包括Java在內的任何語言綁定,它只與Class文件關聯。因此只要符合Java虛擬機規范,任何一門語言編譯出的Class文件都是可以被接受的。

目前在JVM上運行的腳本語言Top5:Groovy,JRuby,Scala,Fantom,Jython

多核並行

JDK1.5引入的java.util.concurrent包實現了粗粒度的並發框架,JDK1.7加入的java.util.concurrent.forkjoin對這一框架進行了重要擴充。

OpenJDK子項目Sumatra利用GPU和APU運算能力,提供Java語言層面的API支持

Hadoop, Scala, Clojure等

進一步豐富的語法

  • 自動裝箱、泛型、動態注解、枚舉、可變長參數、遍歷循環等語法
  • OpenJDK子項目Coin用來收集處理Java語法細節修改

64位虛擬機

64位虛擬機相對於32位存在指針膨脹和各種數據類型對齊問題,多消耗額外10%-30%的內存。JDK 1.6提供了-XX:+UserCompressedOops用於普通對象指針壓縮。但是毫無疑問,主流虛擬機終將會發展至64位。


  1. http://docs.oracle.com/javase/8/docs/ ↩︎


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM