java7是用戶進(jìn)行java語言設(shè)計(jì)的必備組件。java7為用戶帶了許多新的變化,其最大變化要屬整體的模塊化,讓其更加人性化,使用以及設(shè)計(jì)都顯的更加簡單,滿足了用戶的需求。 java7特性介紹:Java編程語言特性1.二進(jìn)制形式的字面值表示2.在數(shù)值類型的字面值中使用下劃線分隔符聯(lián)接3.創(chuàng)建泛型實(shí)例時(shí)自動(dòng)類型推斷4.switch-case語句支持字符串類型[2]5.新增try-with-resources語句[3]6.單個(gè)catch子句同時(shí)捕獲多種異常類型[4]7.改進(jìn)使用帶泛型可變參數(shù)的方法時(shí)的編譯器警告和錯(cuò)誤提示機(jī)制[5]Swing1.新增javax.swing.JLayer類,一個(gè)靈活而且功能強(qiáng)大的Swing組件修飾器。它使你能夠直接利用組件和組件的事件響應(yīng)而無需修改底層組件。你可以點(diǎn)擊查看如何使用JLayer修飾組件。2.NimbusLook&Feel(L&F)從包c(diǎn)om.sun.java.swing移動(dòng)到標(biāo)準(zhǔn)的API包javax.swing;詳細(xì)信息請查看javax.swing.plaf.nimbus。盡管它不是默認(rèn)的L&F,但是現(xiàn)在你可以非常方便地使用它了。你可以查看Java教程中NimbusLookandFeel部分的詳細(xì)信息,也可以在你的程序中運(yùn)行三個(gè)使用Nimbus的簡單方法的代碼示例。3.在以前的版本中,在同一個(gè)容器中混合使用重量級的AWT組件和輕量級的Swing組件可能會(huì)引發(fā)某些問。不過,現(xiàn)在你可以在JavaSE7完美地混合使用它們了。你可以點(diǎn)擊這里查看相關(guān)文章。4.JavaSE7支持以指定的透明度或非矩形的方式來顯示窗體,你可以點(diǎn)擊這里查看Java教程中關(guān)于如何創(chuàng)建帶有指定透明度和非矩形的窗體的部分內(nèi)容。5.類javax.swing.JColorChooser中新增了對以HSV方式來表現(xiàn)RGB色彩模型的支持。HSV和HSL是兩種最常見的用于表示RGB色彩模型的表示方式。它們均表示色調(diào)、飽和度、亮度三個(gè)參數(shù),不過取值形式不同。HSL的三個(gè)參數(shù)的取值范圍均為0-255,HSV的三個(gè)參數(shù)的取值范圍分別為0°-360°、0.0-1.0、0.0-1.0。JavaIO1.包java.nio.file以及相關(guān)聯(lián)的包java.nio.file.attribute提供對文件IO以及訪問文件系統(tǒng)更全面的支持。JDK7也支持zip壓縮格式的文件系統(tǒng)。你可以參考以下資源獲得更多信息:a)你可以點(diǎn)擊查看Java教程中關(guān)于文件I/O(NIO2.0特性)的部分內(nèi)容;nio表示非阻塞式的IO(non-blockingI/O)。b)開發(fā)一個(gè)自定義的文件系統(tǒng)提供者[6] 。c)zip壓縮格式的文件系統(tǒng)提供者[7] 。d)目錄%JAVA_HOME%/sample/nio/chatserver/下含有包括java.nio.file包在內(nèi)的新API的演示示例。e)目錄%JAVA_HOME%/demo/nio/zipfs/下含有NIO2.0網(wǎng)絡(luò)文件系統(tǒng)的演示示例。網(wǎng)絡(luò)1.類java.net.URLClassLoader新增close方法,該方法可以有效解決如何支持從特定代碼庫,尤其是jar文件中,加載類或資源的最新實(shí)現(xiàn)的問題。詳情查看如何關(guān)閉URLClassLoader。安全1.新增ECDSA/ECDH等基于ECC加密算法的支持,詳情查看Java加密體系結(jié)構(gòu)中供應(yīng)商SunEC提供支持的算法的部分內(nèi)容。2.禁用了MD2等一些弱加密算法,JavaSE7提供一種機(jī)制,用于在處理證書路徑或與TLS交互時(shí)拒絕使用指定的加密算法。詳情查看Java公共密鑰程序員指南中的附錄D:禁用指定的加密算法和Java安全套接字?jǐn)U展中的禁用加密算法。3.對Java安全套接字?jǐn)U展(JavaSecureSocketExtension)中的SSL/TLS進(jìn)行了一系列增強(qiáng)和完善。并發(fā)1.基于類java.util.concurrent.ForkJoinPool的fork/join框架,作為接口java.util.concurrent.Executor的一個(gè)實(shí)現(xiàn),它被用來高效地運(yùn)行工作線程池中的大量任務(wù)。其中還使用了一種名為work-stealing的技術(shù),它可以充分利用多處理器來保證所有的工作線程一直正常工作。詳情查看Java教程中的Fork/Join部分。目錄%JAVA_HOME%/sample/forkjoin/中包含fork/join的演示示例。2.新增java.util.concurrent.ThreadLocalRandom類,它消除了使用偽隨機(jī)數(shù)的線程之間的競爭。在多線程并發(fā)訪問的情況下,使用ThreadLocalRandom比使用Math.random()可以減少并發(fā)線程之間的競爭,從而獲得更好的性能。例如:a) intr=ThreadLocalRandom.current().nextInt(4,77);b) //將返回一個(gè)4-77之間的隨機(jī)整數(shù)(不包含77)。3.新增java.util.concurrent.Phaser類,它是一個(gè)新的類似于java.util.concurrent.CyclicBarrier的線程同步障礙輔助工具類(它允許一組線程互相等待,直到到達(dá)某個(gè)公共屏障點(diǎn))。RichInternetApplication(RIA)/部署Java2D1.一個(gè)新的基于XRender的渲染管道能夠提供改進(jìn)的圖形運(yùn)行性能,以支持現(xiàn)在的基于DirectX11的桌面應(yīng)用。默認(rèn)情況下,這個(gè)渲染管道并未啟用,不過你可以使用命令行設(shè)置屬性-Dsun.java2d.xrender=true來啟用它。2.現(xiàn)在JDK可以通過諸如GraphicsEnvironment.getAvailableFontFamilyNames等方法來枚舉并顯示系統(tǒng)中已安裝的OpenType/CFF字體了,并且這些字體都可以被方法Font.createFont識別。你可以查看Java教程選擇指定的字體。3.類java.awt.font.TextLayout現(xiàn)在可以支持西藏文字的腳本了。4.在Windows和Solaris操作系統(tǒng)中,文件fontconfig.properties中靜態(tài)指定了JDK可以使用的邏輯字體。不過,在多數(shù)Linux系統(tǒng)的實(shí)現(xiàn)中,并沒有保證在特定的語言環(huán)境下對特定字體表現(xiàn)的支持。在JavaSE7中,libfontconfig可選擇在「未識別」的Linux平臺(tái)上使用的邏輯字體。更多信息可以查看Fontconfig。JavaXML1.JavaSE7現(xiàn)在已經(jīng)更新JavaAPIforXMLProcessing(JAXP)至1.4.5版本,與以前的版本相比,該版本修復(fù)了許多bug,并且做了許多的改進(jìn),尤其是在一致性、安全性和性能方面。雖然JAXP仍然處于1.4版本,不過StAX已經(jīng)升級到了1.2版本。更多信息你可以查看JAXP1.4.5發(fā)行說明以及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中添加或改進(jìn)了對Unicode6.0.0、本地化目錄、本地化類文件以及ISO4217貨幣符號擴(kuò)展性的支持。java.lang包1.JavaSE7修復(fù)了以前版本中多線程的自定義類加載器可能出現(xiàn)死鎖的問題。Java虛擬機(jī)(JVM)1.java虛擬機(jī)支持非Java語言2.G1(Garbage-First)垃圾收集器3.JavaHotSpot虛擬機(jī)性能增強(qiáng)Jdbc4.11.支持使用try-with-resources語句進(jìn)行自動(dòng)的資源釋放,包括連接、語句和結(jié)果集2.支持RowSet1.1