Java 5 、六、 7中新特性

JDK5新特性(與1.4相比)【轉】html

1 循環java

for (type variable : array){ body}程序員

for (type variable : arrayList){body}算法

而1.4必須是:sql

for (int i = 0; i < array.length; i++){ type variable = array[i];    body}編程

for (int i = 0; i < arrayList.size(); i++){type variable = (type) arrayList.get(i); body}小程序

2 泛型api

以ArrayList爲例,包括建立一個容器對象和取得容器內對象操做:瀏覽器

1.5 ArrayList<Type> arrayList =new ArrayList<Type>(); arrayList.get(i)緩存

1.4 ArrayList arrayList =new ArrayList();  (Type) arrayList.get(i)

3 自動裝箱拆箱

在JDK5.0之前,在原始類型與相應的包裝類之間的轉化是不能自動完成的。要完成這種轉化,須要手動調用包裝類的構造函數,在JDK5.0環境中,能夠自動轉化:

1.5 Integer wrapper = n;    int n = wrapper;

1.4 Integer wrapper = new Integer(n);    int n = wrapper.intValue();

4 可變的返回類型

在JDK5.0之前,當覆蓋父類方法時,返回類型是不能改變的。如今有新的規則用於覆蓋方法。以下,一個典型的例子就是clone()方法:

1.5 public Employee clone() { ... }

    ...

    Employee cloned = e.clone();

1.4 public Object clone() { ... }

    ...

    Employee cloned = (Employee) e.clone();

5 靜態導入

靜態導入功能對於JDK 5.0之前的版本是不支持的。

import static java.lang.Math;

import static java.lang.System;

...

1.5 out.println(sqrt(PI));

1.4 System.out.println(Math.sqrt(Math.PI));

6 控制檯輸入

JDK 5.0先前的版本沒有Scanner類,只能使用JOptionPane.showInputDialog類代替。

1.5 Scanner in = new Scanner(System.in);

    System.out.print(prompt);

    int n = in.nextInt();

    double x = in.nextDouble();

    String s = in.nextLine();

1.4 String input = JOptionPane.showInputDialog(prompt);

    int n = Integer.parseInt(input);

    double x = Double.parseDouble(input);

    s = input;

7 格式化輸出

JDK5.0之前的版本沒有printf方法,只能使用NumberFormat.getNumberInstance來代替。

1.5 System.out.printf("%8.2f", x);

1.4 NumberFormat formatter= NumberFormat.getNumberInstance();

    String formatted = formatter.format(x);

    for (int i = formatted.length(); i < 8; i++)

    System.out.print(" "); System.out.print(formatted);

8 內容面板代理

在JDK5.0先前的版本中,JFrame,JDialog,JApplet等類沒有代理add和setLayout方法。

1.5 add(component);  setLayout(manager);

1.4 getContentPane().add(component);getContentPane().setLayout(manager);

9 StringBuilder類

jDK 5.0引入了StringBuilder類,這個類的方法不具備同步,這使得該類比StringBuffer類更高效。

 

JDK6的新特性(轉)

1 SystemTray類

在JDK6中 ,AWT新增長了兩個類:Desktop和SystemTray,前者能夠用來打開系統默認瀏覽器瀏覽指定的URL,打開系統默認郵件客戶端給指定的郵箱發郵件,用默認應用程序打開或編輯文件(好比,用記事本打開以txt爲後綴名的文件),用系統默認的打印機打印文檔;後者能夠用來在系統托盤區建立一個托盤程序.

2 使用JAXB2來實現對象與XML之間的映射

JAXB是Java Architecture for XML Binding的縮寫,能夠將一個Java對象轉變成爲XML格式,反之亦然。

3 新增StAX

StAX(The Streaming API for XML)是JDK6.0中除了DOM和SAX以外的又一種處理XML文檔的API

4 新增Compiler API

能夠用JDK6 的Compiler API去動態編譯Java源文件。這個特性對於用到動態編譯的應用程序至關有用, 好比JSP Web Server,當咱們手動修改JSP後,是不但願須要重啓Web Server才能夠看到效果的,這時候咱們就能夠用Compiler API來實現動態編譯JSP文件

5 輕量級Http Server

JDK6提供了一個簡單的Http Server API,,程序員必須本身實現HttpHandler接口,HttpServer會調用HttpHandler實現類的回調方法來處理客戶端請求。

6 插入式註解處理API(Pluggable Annotation Processing API)

插入式註解處理API提供一套標準API來處理Annotations,它把method, package, constructor, type, variable, enum, annotation等Java語言元素映射爲Types和Elements, 從而將Java語言的語義映射成爲對象。

7 用Console開發控制檯程序

JDK6中提供了java.io.Console類專用來訪問基於字符的控制檯設備.

8 Web服務元數據(Web Services metadata)

9 更簡單,更強大的JAX-WS

Java Architecture for XML Web Services的縮寫,是一種用Java和XML開發Web Services應用程序的框架。

10 腳本語言支持(Scripting)

JDK6增長了對腳本語言的支持,原理上是將腳本語言編譯成bytecode,這樣腳本語言也能享用Java平臺的諸多優點,包括可移植性,安全等,另外,因爲如今是編譯成bytecode後再執行,因此比原來邊解釋邊執行效率要高不少。

11 JTable的排序和過濾

原來的JTable基本上是隻能顯示數據,在JDK6新增了對JTable的排序和過濾功能

========================================================

7.0特性

 

甲骨文有兩個產品實現Java平臺標準版(Java SE)7:Java SE的開發工具包(JDK),7和Java SE的運行環境(JRE)7。

JDK 7中的JRE 7的一個超集,幷包含在JRE 7的一切,再加上開發applets和應用程序所必需的編譯器和調試器等工具。 JRE7提供了類庫,Java虛擬機(JVM),和其餘運行使用Java編程語言編寫的applets和應用程序所需的組件。


下面的概念圖說明了Java組件技術:

文檔之「新」

文檔按期更新,以提供在Java平臺上的新功能的深刻了解信息的開發。一些最近的更新包括:

1.Swing

 

 

包括如下主題:

JLayerClass Swing包中的新組件,可支持自定義繪製

NimbusLook & Feel Swing包中最新的U組件,可支持自定義皮膚

Heavyweightand Lightweight Components Swing包中的最新屬性,可實現透明和半透明窗體

Shapedand Translucent Windows Swing包中的最新組件,可實現自定義形狀窗體


Hue-Saturation-Luminance(HSL) Color Selectionin JColorChooser Class 色彩選擇器,可支持色彩飽和度和亮度

Image 1NimbusLook & Feel

Image 2TranslucentWindow

Image 3GradientWindow

Image 4ShapedWindow

Image 6 InternalFrameMixingFixed

 

2. Java SE 7的網絡加強

 

 

URLClassLoader.close方法已被添加。這種方法有效地消除了如何支持從一個特定的代碼庫,特別是在JAR文件中加載的類和資源更新的實現的問題。有關更多信息,請參閱合爲URLClassLoader。

套接字直接協議(SDP)提供得到高性能的網絡鏈接;在Java教程,請參閱瞭解套接字直接協議。

3. JavaSE 7在Collections Framework的加強

 

 

已加入TransferQueue接口,這是一個完善的BlockingQueue接口。類LinkedTransferQueue實現TransferQueue的接口。

4. 客戶端JRE 性能– 快速參考

 

 

Java的豐富互聯網應用程序(RIA)技術日趨成熟。在每個Java運行時環境(JRE)軟件版本的新功能被添加。此快速參考幫助您跟上充滿活力的技術和實施工做在全部版本的客戶端JRE軟件優雅的RIA解決方案。快速參考提供有關在每一個版本的JRE軟件與Java SE 6 update 10的發佈開始中添加了重要的功能的信息。

窗口拖動的applet能夠裝飾一個默認或自定義的標題;看到請求和自定義可拖動的小程序Applet的裝飾。如下加強功能已JNLP文件的語法; JNLP文件語法:(1)OS元素如今能夠包含特定版本的Windows,如Windows Vista或Windows 7,在信息和資源的屬性。 (2)的應用程序可使用在快捷元素的安裝屬性,指定要安裝他們的願望。安裝的應用程序的JavaWeb Start緩存被清除時刪除,但能夠明確地使用Java控制面板刪除。(3)的Java Web Start應用程序能夠部署不指定codebase屬性;無代碼庫部署JNLP文件能夠被嵌入到一個HTML頁面; JNLP文件中嵌入applet標籤。

您能夠檢查applet的狀態變量,而它加載,以肯定是否該applet是準備從JavaScript代碼來處理請求;處理與事件處理程序的初始化狀態。

您如今的控制窗口的裝修風格,並從快捷方式啓動一個applet的標題,或一拖再拖的瀏覽器;看到請求和定製開發可拖動的小程序Applet的裝飾。

5. Java XML 技術加強

 

 

本版本中包含的JavaAPI,用於XML處理(JAXP)1.4.5支​​持Java用於XML綁定(JAXB)的2.2.3的架構,並支持Java API的XML Web服務(JAX - WS的)2.2.4。

6. java.lang 包

潛在的死鎖多線程,非分層委託定製的類加載器被淘汰;見多線程在Java SE 7的自定義類加載器。

7.Java 虛擬機

非Java語言的Java虛擬機支持Java SE7中引入了一個新的JVM指令,它簡化了在JVM上的動態類型編程語言的實施。

垃圾收集器是一個服務器式的垃圾收集器,它取代併發標記 - 清除收集(CMS)的。

Java HotSpot虛擬機性能加強

8. Java I/O

java.nio.file包和其相關的包,java.nio.file.attribute,提供訪問文件系統的文件I / O和全面的支持;看到文件的I / O(特點NIO.2)。 NIO的表明爲非阻塞I / O。 (1)目錄<Java home> /樣本/ NIO / chatserver /包含示例演示java.nio.file包中包含新的API。 (2)目錄<Java home> /演示/ NIO / zipfs /包含NIO.2的NFS(網絡文件系統)文件系統的示例演示。

9. 安全

9.1 一個已添加新的本地供應商提供了幾種基於ECC算法(ECDSA / ECDH);看到SUN的PKCS#11提供的支持算法在Java中的PKCS#11參考指南。

9.2 弱加密算法如今能夠被禁用的,見附錄D:禁用加密算法的PKI的Java程序員指南和禁用加密算法(Disabled Cryptographic Algorithms)在Java安全套接字擴展(JSSE)的參考指南。 SSL /TLS的相關

9.3 Various加強功能已被添加到Java安全套接字擴展。

10. 併發

fork/ join框架,這是基於對ForkJoinPool類,Executor接口的一個實現。它的設計,有效地運行一個大量使用的工做線程池的任務。一個「工做竊取技術」是用來保持忙碌的全部工做線程,充分利用多個處理器。查看的fork /join Java教程。 目錄<Java home> /樣本/ forkjoin /包含樣品,演示的fork / join框架。

ThreadLocalRandom類無需使用僞隨機數的線程之間的爭,見併發隨機數。

Phaser類是一個新的同步的障礙,相似的CyclicBarrier。

11. Java 2D

新的基於XRender -Java 2D渲染管線,支持現代的基於X11的桌面,提供圖形性能,在系統屬性中看到的Java 2D技術xrender標誌。

如今的JDK列舉和顯示經過的方法,如GraphicsEnvironment.getAvailableFontFamilyNames安裝的OpenType /CFF字體,這些字體也能被Font.createFont方法識別。見選擇字體索引。

TextLayout的類支持藏文。

libfontconfig,字體配置API,用於選擇字體,使用Linux的一些實現的邏輯字體;見Fontconfig索引。

12. 國際化

Unicode 6.0.0被支持了,見Java教程的Unicode。目錄<Java home> / demo/jfc/Font2DTest /包含了演示Java的Unicode 6.0的支持得例子。

Java SE 7中能夠容納其ISO4217代碼肯定了新的貨幣,詳見Currency類。

13. Java 編程語言

如下加強功能已被添加到Java語言:

1. 二進制類型。

2. 在數值類中使用下劃線。

3. 在switch語句中使用字符串。

4. 泛型實例建立的類型推斷。

5. 實現了當使用可變方法作泛型的非具體化類型時編譯器警告和報錯。

6. try-with-resources異常處理。

6. 捕獲多個異常類型和從新拋出改良型檢測異常。

14. JDBC 4.1

JDBC4.1引入瞭如下特色:

增添了使用一個try-with-resources語句自動關閉Connection,ResultSet,andStatement類型資源的功能。詳見ProcessingSQL Statements.下的ClosingConnections 索引。

RowSet的1.1:引進的RowSetFactory接口和RowSetProvider類,這使你經過JDBC驅動程序建立row sets的全部類型。詳見UsingJdbcRowSet Objects中的Using theRowSetFactory Interface

相關文章
相關標籤/搜索