距離Java7的MR版本發布有段時間了,通過安裝試用之后的總體感覺是:速度又快了。仔細閱讀了Java7的相關文檔發現,Java7擁有如下的一些新的特性。
首先是模塊化特性:如果您安裝和使用過NetBeans6.7的話,是不是會有一個很大的感覺,就是NetBeans6.7的啟動速度比以前快了很多,當然并不是NetBeans已經使用了Java7,而是NetBeans將以前一啟動就加載的功能劃分成了很多的模塊,第一次安裝啟動的時候,很多模塊都沒有加載,只是加載了一些最基本的功能模塊,在隨后的使用過程中,如果用到了某一種功能,就啟用相應的模塊,這樣形成了一個按需加載的特點,當然隨著加載的模塊數量增加,啟動的速度也會隨之變慢。不過除非你要用其中的所有模塊,否則總是比之前的版本速度要快?,F在的 Java7也是采用了模塊的劃分方式來提速,一些不是必須的模塊并沒有下載和安裝,因此在使用全新的Java7的虛擬機的時候會發現真的很快,當虛擬機需要用到某些功能的時候,再下載和啟用相應的模塊,這樣使得最初需要下載的虛擬機大小得到了有效的控制。同時對啟動速度也有了很大的改善。如果你對 OpenJDK的架構比較熟悉,你甚至可以定制JDK的模塊。
其次是多語言支持:這里的多語言不是指中文英文之類的語言,而是說Java7的虛擬機對多種動態程序語言增加了支持,比如:Rubby、 Python等等。對這些動態語言的支持極大地擴展了Java虛擬機的能力。對于那些熟悉這些動態語言的程序員而言,在使用Java虛擬機的過程中同樣可以使用它們熟悉的語言進行功能的編寫,而這些語言是跑在功能強大的JVM之上的。
再有是開發者的開發效率得到了改善:Java7通過多種特性來增強開發效率。比如對語言本身做了一些細小的改變來簡化程序的編寫,在多線程并發與控制方面:輕量級的分離與合并框架,一個支持并發訪問的HashMap等等。通過注解增強程序的靜態檢查。提供了一些新的API用于文件系統的訪問、異步的輸入輸出操作、Socket通道的配置與綁定、多點數據包的傳送等等。
最后是執行效率的提高,也是給人感覺最真切體驗的特性:壓縮了64位的對象指針,Java7通過對對象指針由64位壓縮到與32位指針相匹配的技術使得內存和內存帶塊的消耗得到了很大的降低因而提高了執行效率。此外還提供了新的垃圾回收機制(G1)來降低垃圾回收的負載和增強垃圾回收的效果。G1垃圾回收機制擁有更低的暫停率和更好的可預測性。
其實如上的這些特性是在告訴我們,Java7改善了什么,速度為什么快了,當然這些特性將隨著Java7的正式版發布而繼續凸顯其優勢。