2010-03-04 13 views
5

Ich war gerade jetzt ein Code-Tutorial der Suche durch und fand etwas interessant - das import static Feature in JDK 5 eingeführt:Die nützlichsten oder interessantesten neuen Sprachfunktionen in Java 5 und 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 */ 
    } 

} 

Es hat mich gefragt, was andere Features wurden in JDK 5 und 6 eingeführt, die Ich weiß es nicht? Gibt es andere neue Keyword-Verwendungen wie diese? Gibt es nennenswerte neue Bibliotheksklassen oder -funktionen?

Ich weiß, dass Release Notes oder Changelogs da draußen sind, ich bin nicht auf der Suche nach einer "RTFM" Antwort. Ich möchte eine kurze Liste Ihrer Meinung nach wissen, welche Funktionen Ihrer Meinung nach die meisten Veränderungen in JDK 5 oder 6 sind.

+1

Da gibt es keine endgültige „Antwort“ hier, nur subjektive Meinungen, ist dies wahrscheinlich eingeführt neue Funktionen lernen sollte Community Wiki gemacht werden ... – Alconja

Antwort

9

Java 5 hatte einen viele von syntaktischen Änderungen: die bedeutendsten (das ich mich erinnere) sind:

  • Generics
  • Aufzählungen
  • foreach-Schleife
  • Auto-Boxen und Auto-Unboxing
  • Kovariante gibt
  • zurück
  • Variadic Funktionen

(Und natürlich, wie es in der Frage, statische Importe und Anmerkungen zur Kenntnis genommen.)

Wie erwähnt Zwei Antwort ist java.util.concurrent eine große zu Java 5-Funktion, und auch, JSR-133 und dessen Speichermodell Änderungen (das erlaubte volatile auf eine vernünftige Art und Weise zu arbeiten, so dass Sie doppelt geprüftes Sperren sicher implementieren konnten, wenn Sie wollten).

Java 6 wies keine Syntaxänderungen auf (an die ich mich erinnere); viele seiner starken Auswirkungen waren performance-related. Bibliotheksmäßig war meine Lieblingsbibliothek "Neu zu Java 6" die Skriptunterstützung (javax.script).

+2

(Und varargs ...) –

+2

@Annotationen zu –

+0

@Tom (Ich würde @tackline sagen, aber das würde Ihren Namen nicht hervorheben): Ja, wie könnte ich diese vergessen. Hinzufügen sie jetzt. :-) –

3

Ich werde weitermachen und eine da draußen setzen: Java Web Start Applet-Unterstützung .

Ich mag es, mit JOGL zu spielen, und es ist so schön, in der Lage zu sein, nur eine kurze jnlp-Datei zu verwenden und Klassenloader, Code zum Herunterladen nativen Bibliothekscode usw. zu JOGL über den Browser zu behandeln. (Ja ich weiß, über JOGL der appletloader Sache)

Gerade eine Linie meiner JNLP-Datei, die JOGL Gläser lädt, seine Abhängigkeiten (gluegen, Native, Molch) und die entsprechenden nativen Bibliotheken für das aktuelle System.

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

Der Rest meiner jnlp Datei ist nur für den Titel meiner Bewerbung und die URL der JAR-Datei, und das ist es.

Übrigens wurde dies in JDK 6u10 eingeführt.

4

Absolut, java.util.concurrent !!!

In Java6, ConcurrentSkipListMap wurde als neue Datenstruktur zu diesem Paket hinzugefügt, und es gespeichert praktisch unser Projekt :)

3

Chris Jester-Young-Liste

  • varargs
  • Anmerkungen hinzufügen

Aber was ich wirklich freue, ist functional programming constructs.

+0

Ich wollte sagen, du hast das aus den Kommentaren in seiner Antwort gepackt, aber es sieht so aus, als ob du direkt nach dem einen geantwortet hast und bevor der andere Kommentar gepostet wurde, also +1 für dich! :) – Ricket