java 7

java 7

java 7,Sun Microsystems開發java,現公司Oracle。

功能完善的程式設計語言版本。

java史上最大版本的一次更新。

基本介紹

  • 中文名:java 7
  • 外文名:java 7
  • 代號:海豚
  • 成就:Java歷史上一次重大的版本更新
  • 主要改進:模組化
  • 推出時間:2011年7月7日
簡介,修改,主要修改,“小的”sun方面的修改有:,sun方面“快速”的修改(主要是性能更新),新特性,Java程式語言特性,Swing,JavaIO,網路,安全,並發,RichInternetApplication(RIA)/部署,Java2D,JavaXML,國際化,java.lang包,Java虛擬機(JVM),Jdbc4.1,

簡介

Java 7,代號「海豚(Dolphin)」,是Java歷史上一次非常重大的版本更新。Java 7 由Sun公司(2009年4月20日被Oracle以74億美元收購)於2011年7月7日首次推出,並於2011年7月28日正式面向開發人員發布。Java 7 的開發周期分為13個階段,並於2011年2月18日全部達成。平均每個階段又更新發布了8個內部小版本,每個版本主要進行功能增強和bug修復。
java 7
Java 7的主要改進:模組化。

修改

主要修改

* Modularization 模組化– JSR 294 或者 Project Jigsaw
* JVM 對動態語言的支持
* 更多新的 I/O APIs 即將完成,包括真正的異步I/O 和最終的真實的檔案系統 file system API – JSR 203
* 對XML本地語言支持. (可能的probable)
* Safe rethrow – 允許catch捕獲語句讓編譯器更加聰明的知道基於什麼情況下重新throw什麼內容。
* Null dereference expressions – Null 和 ‘?’ syntax 比較,語法類似 Groovy… 讓開發者避免過多的空值驗證。
* 更好的類型推斷 Better type inference
* 多重捕獲Multi-catch
* JSR 296 – Swing 套用框架 application framework – 這方面需要更簡單和簡潔。

“小的”sun方面的修改有:

* 升級的類載入class loader 架構;
* XRender pipeline for Java 2D:是Open JDK ntegrators Challenge project項目;
* Swing 更新 – JXLayer, DatePicker, CSS styling 等;
* JavaFX

sun方面“快速”的修改(主要是性能更新)

* 並發方面的細微調整 concurrency tweaks (JSR 166),更好的支持Multicore
* G1 垃圾收集器Garbage collector - 帶來更小的中斷時間,有希望替代 CMS (Concurrent mark sweep) GC
* 64 bit VM的壓縮指針Compressed pointer
* MVM-lite – 多個虛擬機能夠獨立運行套用和允許用kill -9殺死java套用。

新特性

Oracle在其官方網站上公布了《Java SE 7 Features and Enhancements》,其中詳細介紹了Java SE 7 中所有主要的新特性和功能增強,具體內容如下:

Java程式語言特性

1.二進制形式的字面值表示
2.在數值類型的字面值中使用下劃線分隔設定聯接
3.創建泛型實例時自動類型推斷
4.switch-case語句支持字元串類型
5.新增try-with-resources語句
6.單個catch子句同時捕獲多種異常類型
7.改進使用帶泛型可變參數的方法時的編譯器警告和錯誤提示機制

Swing

1.新增javax.swing.JLayer類,一個靈活而且功能強大的Swing組件修飾器。它使你能夠直接利用組件和組件的事件回響而無需修改底層組件。你可以點擊查看如何使用JLayer修飾組件。
2.NimbusLook&Feel(L&F)從包com.sun.java.swing移動到標準的API包javax.swing;詳細信息請查看javax.swing.plaf.nimbus。儘管它不是默認的L&F,但是現在你可以非常方便地使用它了。你可以查看Java教程中NimbusLookandFeel部分的詳細信息,也可以在你的程式中運行三個使用Nimbus的簡單方法的代碼示例。
3.在以前的版本中,在同一個容器中混合使用重量級的AWT組件和輕量級的Swing組件可能會引發某些問題。不過,現在你可以在JavaSE7完美地混合使用它們了。你可以點擊這裡查看相關文章。
4.JavaSE7支持以指定的透明度或非矩形的方式來顯示窗體,你可以點擊這裡查看Java教程中關於如何創建帶有指定透明度和非矩形的窗體的部分內容。
5.類javax.swing.JColorChooser中新增了對以HSV方式來表現RGB色彩模型的支持。HSV和HSL是兩種最常見的用於表示RGB色彩模型的表示方式。它們均表示色調、飽和度、亮度三個參數,不過取值形式不同。HSL的三個參數的取值範圍均為0-255,HSV的三個參數的取值範圍分別為0°-360°、0.0-1.0、0.0-1.0。

JavaIO

1.包java.nio.file以及相關聯的包java.nio.file.attribute提供對檔案IO以及訪問檔案系統更全面的支持。JDK7也支持zip壓縮格式的檔案系統。你可以參考以下資源獲得更多信息:
a)你可以點擊查看Java教程中關於檔案I/O(NIO2.0特性)的部分內容;nio表示非阻塞式的IO(non-blockingI/O)。
b)開發一個自定義的檔案系統提供者。
c)zip壓縮格式的檔案系統提供者。
d)目錄%JAVA_HOME%/sample/nio/chatserver/下含有包括java.nio.file包在內的新API的演示示例。
e)目錄%JAVA_HOME%/demo/nio/zipfs/下含有NIO2.0網路檔案系統的演示示例。

網路

1.類java.net.URLClassLoader新增close方法,該方法可以有效解決如何支持從特定代碼庫,尤其是jar檔案中,載入類或資源的最新實現的問題。詳情查看如何關閉URLClassLoader。

安全

1.新增ECDSA/ECDH等基於ECC加密算法的支持,詳情查看Java加密體系結構中供應商SunEC提供支持的算法的部分內容。
2.禁用了MD2等一些弱加密算法,JavaSE7提供一種機制,用於在處理證書路徑或與TLS互動時拒絕使用指定的加密算法。詳情查看Java公共密鑰程式設計師指南中的附錄D:禁用指定的加密算法和Java安全套接字擴展中的禁用加密算法。
3.對Java安全套接字擴展(JavaSecureSocketExtension)中的SSL/TLS進行了一系列增強和完善。

並發

1.基於類java.util.concurrent.ForkJoinPool的fork/join框架,作為接口java.util.concurrent.Executor的一個實現,它被用來高效地運行工作執行緒池中的大量任務。其中還使用了一種名為work-stealing的技術,它可以充分利用多處理器來保證所有的工作執行緒一直正常工作。詳情查看Java教程中的Fork/Join部分。目錄%JAVA_HOME%/sample/forkjoin/中包含fork/join的演示示例。
2.新增java.util.concurrent.ThreadLocalRandom類,它消除了使用偽隨機數的執行緒之間的競爭。在多執行緒並發訪問的情況下,使用ThreadLocalRandom比使用Math.random()可以減少並發執行緒之間的競爭,從而獲得更好的性能。例如:
a) intr=ThreadLocalRandom.current().nextInt(4,77);
b) //將返回一個4-77之間的隨機整數(不包含77)。
3.新增java.util.concurrent.Phaser類,它是一個新的類似於java.util.concurrent.CyclicBarrier的執行緒同步障礙輔助工具類(它允許一組執行緒互相等待,直到到達某個公共屏障點)。

RichInternetApplication(RIA)/部署

Java2D

1.一個新的基於XRender的渲染管道能夠提供改進的圖形運行性能,以支持現在的基於DirectX11的桌面套用。默認情況下,這個渲染管道並未啟用,不過你可以使用命令行設定屬性-Dsun.java2d.xrender=true來啟用它。
2.現在JDK可以通過諸如GraphicsEnvironment.getAvailableFontFamilyNames等方法來枚舉並顯示系統中已安裝的OpenType/CFF字型了,並且這些字型都可以被方法Font.createFont識別。你可以查看Java教程選擇指定的字型。
3.類java.awt.font.TextLayout現在可以支持西藏文字的腳本了。
4.在Windows和Solaris作業系統中,檔案fontconfig.properties中靜態指定了JDK可以使用的邏輯字型。不過,在多數Linux系統的實現中,並沒有保證在特定的語言環境下對特定字型表現的支持。在JavaSE7中,libfontconfig可選擇在「未識別」的Linux平台上使用的邏輯字型。更多信息可以查看Fontconfig。

JavaXML

1.JavaSE7現在已經更新JavaAPIforXMLProcessing(JAXP)至1.4.5版本,與以前的版本相比,該版本修復了許多bug,並且做了許多的改進,尤其是在一致性、安全性和性能方面。雖然JAXP仍然處於1.4版本,不過StAX已經升級到了1.2版本。更多信息你可以查看JAXP1.4.5發行說明以及JAXP1.4.5更新日誌。
2.JavaSE7更新JavaArchitectureforXMLBinding(JAXB)至2.2.3版本,詳情查看2.2以上版本的JAXB更新日誌。
3.JavaSE7更新JavaAPIforXMLWebServices(JAX-WS)至2.2.4版本。詳情查看2.2以上版本的JAX-WS更新日誌。

國際化

1.JavaSE7中添加或改進了對Unicode6.0.0、本地化目錄、本地化類檔案以及ISO4217貨幣符號擴展性的支持。

java.lang包

1.JavaSE7修復了以前版本中多執行緒的自定義類載入器可能出現死鎖的問題。

Java虛擬機(JVM)

1.java虛擬機支持非Java語言
2.G1(Garbage-First)垃圾收集器
3.JavaHotSpot虛擬機性能增強

Jdbc4.1

1.支持使用try-with-resources語句進行自動的資源釋放,包括連線、語句和結果集
2.支持RowSet1.1

相關詞條

熱門詞條

聯絡我們