Nouveautés de Java 8

Java 8 (également connu sous le nom de jdk 1.8) est une version majeure du développement du langage Java. Oracle Corporation a publié Java 8 le 18 mars 2014. Il prend en charge la programmation fonctionnelle, un nouveau moteur JavaScript, une nouvelle API de date, une nouvelle API Stream, et plus encore.


Nouvelles fonctionnalités

Java 8 a ajouté un grand nombre de fonctionnalités ; nous abordons principalement les suivantes :

  • Expressions Lambda− Lambda permet d'utiliser des fonctions comme paramètres de méthode (fonctions passées dans des méthodes en tant qu'arguments).

  • Références de méthodes− Les références de méthodes fournissent une syntaxe très utile qui peut directement référencer des méthodes ou des constructeurs de classes Java existantes ou d'objets (instances). Lorsqu'elles sont utilisées avec lambda, les références de méthodes peuvent rendre les constructions du langage plus compactes et concises, en réduisant le code redondant.

  • Méthodes par défaut− Une méthode par défaut est une méthode qui possède une implémentation dans une interface.

  • Nouveaux outils− De nouveaux outils de compilation, tels que : le moteur Nashorn jjs, l'analyseur de dépendances de classes jdeps.

  • API Stream− L'API Stream (java.util.stream) nouvellement ajoutée introduit un style de programmation véritablement fonctionnel dans Java.

  • API Date Time− Gestion améliorée des dates et des heures.

  • Classe Optional− La classe Optional fait désormais partie de la bibliothèque de classes Java 8, utilisée pour résoudre les exceptions de pointeur null.

  • Nashorn, moteur JavaScript− Java 8 fournit un nouveau moteur JavaScript Nashorn, qui nous permet d'exécuter des applications JavaScript spécifiques sur la JVM.

Pour plus de nouvelles fonctionnalités, veuillez consulter le site officiel :Nouveautés de JDK 8

Dans les exemples de l'article Java 8, nous utilisons tous l'environnement jdk 1.8. Vous pouvez utiliser la commande suivante pour vérifier la version actuelle du jdk :

$ java -version
java version "1.8.0_31"
Java(TM) SE Runtime Environment (build 1.8.0_31-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.31-b07, mixed mode)

Style de programmation

Java 8 souhaite avoir son propre style de programmation et se distinguer de Java 7. Les exemples suivants montrent les formats de programmation de Java 7 et Java 8 :

Code du fichier Java8Tester.java :

import java.util.Collections; import java.util.List; import java.util.ArrayList; import java.util.Comparator; public class Java8Tester { public static void main(String args[]){ List<String> names1 = new ArrayList<String>(); names1.add("Google "); names1.add("Example "); names1.add("Taobao "); names1.add("Baidu "); names1.add("Sina "); List<String> names2 = new ArrayList<String>(); names2.add("Google "); names2.add("Example "); names2.add("Taobao "); names2.add("Baidu "); names2.add("Sina "); Java8Tester tester = new Java8Tester(); System.out.println("Utilisation de la syntaxe Java 7 :"); tester.sortUsingJava7(names1); System.out.println(names1); System.out.println("Utilisation de la syntaxe Java 8 :"); tester.sortUsingJava8(names2); System.out.println(names2); } //Tri en utilisant Java 7 private void sortUsingJava7(List<String> names){ Collections.sort(names, new Comparator<String>() { @Override public int compare(String s1, String s2) { return s1.compareTo(s2); } }); } //Tri avec Java 8 private void sortUsingJava8(List<String> names){ Collections.sort(names, (s1, s2) -> s1.compareTo(s2)); } }

Exécutez le script ci-dessus, le résultat de sortie est :

$ javac Java8Tester.java
$ java Java8Tester
使用 Java 7 语法: 
[Baidu , Google , Example , Sina , Taobao ]
使用 Java 8 语法: 
[Baidu , Google , Example , Sina , Taobao ]

Ensuite, nous présenterons en détail les nouvelles fonctionnalités de Java 8 pour tout le monde :

Non. Fonctionnalité
1 Expressions Lambda
2 Références de méthodes
3 Interfaces fonctionnelles
4 Méthodes par défaut
5 Flux
6 Classe Optional
7 Nashorn, moteur JavaScript
8 Nouvelle API Date/Time
9 Base64
Autres extensions