Java 8 - Présentation

JAVA 8 est une version majeure du développement du langage de programmation JAVA. Sa version initiale a été publiée le 18 mars 2014. Avec la version Java 8, Java a fourni des supports pour la programmation fonctionnelle, un nouveau moteur JavaScript, de nouvelles API pour la manipulation de la date et de l'heure, une nouvelle API de streaming, etc.

Nouvelles fonctionnalités

  • Lambda expression - Ajoute une capacité de traitement fonctionnelle à Java.

  • Method references- Référencer les fonctions par leurs noms au lieu de les appeler directement. Utilisation des fonctions comme paramètre.

  • Default method - Interface pour avoir l'implémentation de la méthode par défaut.

  • New tools - De nouveaux outils et utilitaires de compilation sont ajoutés comme «jdeps» pour comprendre les dépendances.

  • Stream API - Nouvelle API de flux pour faciliter le traitement du pipeline.

  • Date Time API - API de date et heure améliorée.

  • Optional - Accent sur les meilleures pratiques pour gérer correctement les valeurs nulles.

  • Nashorn, JavaScript Engine - Un moteur basé sur Java pour exécuter du code JavaScript.

Considérez l'extrait de code suivant.

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("Mahesh ");
      names1.add("Suresh ");
      names1.add("Ramesh ");
      names1.add("Naresh ");
      names1.add("Kalpesh ");
		
      List<String> names2 = new ArrayList<String>();
      names2.add("Mahesh ");
      names2.add("Suresh ");
      names2.add("Ramesh ");
      names2.add("Naresh ");
      names2.add("Kalpesh ");
		
      Java8Tester tester = new Java8Tester();
      System.out.println("Sort using Java 7 syntax: ");
		
      tester.sortUsingJava7(names1);
      System.out.println(names1);
      System.out.println("Sort using Java 8 syntax: ");
		
      tester.sortUsingJava8(names2);
      System.out.println(names2);
   }
   
   //sort using 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);
         }
      });
   }
   
   //sort using java 8
   private void sortUsingJava8(List<String> names) {
      Collections.sort(names, (s1, s2) -> s1.compareTo(s2));
   }
}

Exécutez le programme pour obtenir le résultat suivant.

Sort using Java 7 syntax:
[ Kalpesh Mahesh Naresh Ramesh Suresh ]
Sort using Java 8 syntax:
[ Kalpesh Mahesh Naresh Ramesh Suresh ]

Ici le sortUsingJava8() utilise une fonction de tri avec une expression lambda comme paramètre pour obtenir les critères de tri.