標籤:
世界上並沒有完美的程式,但我們並不因此而沮喪,因為寫程式本來就是一個不斷追求完美的過程。
Java的優點:
(1)依次編寫,多處運行
(2)提供了相對安全的記憶體管理和訪問機制,避免了絕大部分的記憶體泄露和指標越界問題
(3)實現了熱點代碼檢測和運行時編譯及最佳化,這使得Java應用能隨著已耗用時間的增加獲得更高的效能
(4)有一套完善的應用程式介面,還有無數來自商業機構和開源社區的第三方類庫來協助它實現各種各樣的功能
Java技術體系:
(1)Java程式設計語言
(2)各種硬體平台上的Java虛擬機器
(3)Class檔案格式
(4)Java API類庫
(5)來自商業機構和開源社區的第三方Java類庫
Java虛擬機器發展:
(1)Sun Classic VM:第一款商用Java虛擬機器,只能使用純解譯器方式來執行Java代碼,外掛JIT編譯器後,JIT將完全接管虛擬機器的執行系統,解譯器便不會再工作了
(2)Exact VM:JDK1.2時,曾在Solaris平台上發不過一款名為Exact VM的虛擬機器
(3)HotSpot VM:在JDK1.2是,Classic VM與HotSpot VM並存,但是預設使用Classic VM,而在JDK1.3時,HotSpot VM是預設虛擬機器,Classic VM備用,直到JDK1.4 Classic VM才完全退出商用虛擬機器的曆史舞台,與Exact VM一起進入了Sun Labs Research VM中。
高效能Java虛擬機器一般指Sun HotSpot、BEA JRockit、 IBM J9 VM,JRockit VM曾經號稱“世界上速度最快的Java虛擬機器”,是一款專門為伺服器硬體和伺服器端應用情境高度最佳化的襲擊,由於專註於伺服器端應用,它不太關注程式啟動速度,因此JRockit內部不包含解析器的實現,全部代碼都靠即時編譯器表以後執行,同時JRockit的垃圾收集器和MissionControl服務套件等部分實現,都是領先地位;其實Azul VM和BEA Liquid VM這類特定硬體平台轉悠的虛擬機器才是“高效能”虛擬機器。
展望Java技術的未來:
(1)模組化
未來的Java平台中,很可能會對模組化提出文法層面的支援
(2)混合語言
當單一的Java開發已經無法瞞住當前軟體複雜需求時,越來越多基於Java虛擬機器的語言開發被應用到軟體項目中,如:Scala、Groovy、Clojure、JRuby/Rails
(3)多核並行
早在JDK1.5就已經引入java.util.concurrent包實現了一個粗粒度的並發架構,而在JDK1.7中加入了java.util.concurrent.forkjoin包是對這個架構的一次重要擴充。
(4)進一步豐富文法
java 5曾對Java文法進行了一次擴充,加入了自動裝箱、泛型、動態註解、枚舉、可變長參數、for-each遍曆等
(5)64位虛擬機器
Java虛擬機器學習