La plupart des nouvelles fonctionnalités linguistiques utiles ou intéressantes en Java 5 et 6?

StackOverflow https://stackoverflow.com/questions/2377054

Question

Je regardais à travers un tutoriel de code tout à l'heure, et a trouvé quelque chose d'intéressant - la fonction import static introduit dans 5 JDK:

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 */
  }

}

Il m'a demander, Quelles autres fonctionnalités ont été introduites dans le JDK 5 et 6 que je ne sais pas? Y at-il d'autres nouveaux usages de mots clés comme celui-ci? Toute remarquable nouvelle bibliothèque de classes ou fonctions?

Je sais que les notes de version ou changelogs sont là-bas, je ne cherche pas une réponse « RTFM ». Je veux savoir une courte liste de, à votre avis, les fonctionnalités que vous pensez sont plus jeu de changement dans le JDK 5 ou 6.

Était-ce utile?

La solution

Java 5 a beaucoup des changements syntaxiques: le plus important (que je me souviens) sont:

  • Génériques
  • énumérations
  • Pour chaque boucle-
  • Auto-boxing et auto-unboxing
  • retours Covariants
  • Fonctions VARIADIC

(Et bien sûr, comme il est indiqué dans la question, les importations statiques et annotations.)

Comme la réponse de Zwei mentionné, java.util.concurrent est une caractéristique majeure de Java 5 aussi, et aussi, JSR-133 et ses changements de modèle de mémoire (qui a permis volatile de travailler d'une manière saine d'esprit, de sorte que vous pourriez mettre en œuvre le verrouillage revérifié en toute sécurité si vous voulu).

Java 6 ne figure pas des modifications de syntaxe (que je me souviens); plusieurs de ses changements à fort impact ont été liée à la performance. Sage bibliothèque, mon préféré bibliothèque "nouvelle Java 6" était le support de script (de javax.script).

Autres conseils

Absolument, java .util.concurrent !!!

Dans java6, ConcurrentSkipListMap a été ajouté en tant que nouvelle structure de données à ce paquet, et il a sauvé pratiquement notre projet :)

Je vais aller de l'avant et mettre un là-bas. logiciel Java Web Start applet

J'aime jouer avec JOGL , et il est tellement agréable de pouvoir simplement utiliser un court fichier jnlp et ne pas avoir à écrire classloaders, code pour télécharger le code natif bibliothèque, etc. pour gérer obtenir JOGL via le navigateur. (Oui je sais au sujet de la chose appletloader de JOGL)

Juste un ligne de mon fichier JNLP charge les pots JOGL, ses dépendances (gluegen, nativeWindow triton), et les bibliothèques natives appropriées pour le système actuel.

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

Le reste de mon dossier jnlp est juste pour le titre de ma demande et l'URL de son fichier JAR, et qui est à ce sujet.

Par ailleurs, il a été introduit dans 6u10 JDK.

Pour la liste de Chris Jester-Young add

  • varargs
  • annotations

Mais ce que je suis vraiment avec impatience est- constructions de programmation fonctionnelle.

Vous pouvez apprendre de nouvelles fonctionnalités introduites dans Java 5 avec des exemples ici Java 5 (J2SE 5.0 / 1.5) nouvelles JDK Caractéristiques avec les exemples

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top