2010-03-04 24 views
5

我一直在尋找通過代碼教程剛纔,發現一些有趣的事情 - 在import static功能在JDK 5介紹:Java 5和6中最有用或最有趣的新語言功能?

import static org.junit.Assert.assertEquals; 

public class AdditionTest { 

    private int x = 1; 
    private int y = 1; 

    @Test public void addition() { 
    int z = x + y; 
    assertEquals(2, z); 
    /*^this is a static method, normally called by Assert.assertEquals */ 
    } 

} 

這讓我想知道,在JDK 5和6推出什麼其他的功能,我不知道?是否有像這樣的其他新關鍵字用法?任何值得注意的新圖書館課程或功能?

我知道發行說明或更新日誌都在那裏,我不是在尋找「RTFM」的答案。我想知道一個簡短的清單,在您看來,您認爲哪些功能是JDK 5或6中改變最多的功能。

+1

由於沒有明確的「答案」在這裏,只是主觀意見,這或許應該作出社區維基... – Alconja

回答

9

Java 5中有句法變化很多:最顯著(我記得)有:

  • 泛型
  • 枚舉
  • 的for-each循環
  • 自動裝箱和自動拆箱
  • Covariant返回
  • 變量函數

(當然,如問題,靜態導入和註釋。注意)

如前所述ZWEI的回答,java.util.concurrent是一個主要的Java 5的功能太強了,還有,JSR-133和它的內存模型更改(允許volatile以一種合理的方式工作,所以如果您願意,可以安全地執行雙重檢查鎖定)。

Java 6沒有任何語法變化(我記得);其中很多影響力很大的變化是performance-related。在圖書館方面,我最喜歡的「Java 6新手」庫是腳本支持(javax.script)。

+2

(和可變參數...) –

+2

@Annotations too –

+0

@Tom(我會說@tackline,但不會突出你的名字):是的,我怎麼能忘記那些。現在添加它們。 :-) –

3

我會繼續推出:Java Web Start小程序支持

我喜歡玩JOGL,很高興能夠使用簡短的jnlp文件,而不必編寫類加載器,下載本地庫代碼的代碼等來處理通過瀏覽器獲得的JOGL。 (是的,我知道JOGL的appletloader事)

只是一個線我的JNLP文件的加載JOGL罐子,它的依賴(gluegen,NativeWindow中,蠑螈),以及當前系統適當的機庫。

<extension name="JOGL" 
    href="http://download.java.net/media/jogl/builds/archive/jsr-231-2.0-beta10/webstart/jogl-all-awt.jnlp" /> 

我的JNLP文件的剩餘部分就是我的應用程序的名稱和它的JAR文件的URL,並且僅此而已。

順便說一句,這是在JDK 6u10介紹。

4

絕對,java.util.concurrent !!!

在的Java6,ConcurrentSkipListMap添加爲新的數據結構,這個包,它實際上救了我們的項目:)

3

克里斯小丑,年輕的列表中添加

  • 可變參數
  • 註釋

但我真正期待的是functional programming constructs.

+0

我想說你從他的回答中的評論中抓住了這個,但是看起來你剛剛在回答一個之前回答,並且在另一個評論發佈之前,所以爲你+1! :) – Ricket

相關問題