Depuis qu'Oracle a annoncé vouloir accélérer le développement de Java, on a connu trois nouvelles versions du JDK en l'espace d'un an seulement (une nouvelle release tous les six mois). Cette nouvelle cadence de release peut-être angoissante lorsqu'on est habitué à avoir une nouvelle version de Java tous les trois ans. article a pour objectif de lister les principales nouveautés entre les JDK 8 et 11, suivis de conseils pour migrer votre application à la dernière version de Java. Support des différentes versions
Oracle assure sortir une version bénéficiant du LTS () tous les trois ans, pour une durée de trois ans. Ainsi, le support commercial de Java 8 (qui date de mars 2014, déjà) va se terminer en janvier 2019 (décembre 2020 pour le non commercial et septembre 2022 pour OpenJDK). Java 11 étant la nouvelle version LTS (jusqu'à septembre 2022 pour OpenJDK, Oracle n'ayant pas encore annoncé de date), il est donc temps de migrer! Les nouveautés depuis Java 8
Java 9
Jigsaw, le système modulaire
Probablement la plus grosse nouveauté de Java 9, Jigsaw a pour objectif de rendre modulaire votre application.
- Java 8 nouveautés de
- Java 8 nouveautés answers
Java 8 Nouveautés De
Les classes Collection qui héritent l'interface Iterable peuvent utiliser la méthode forEach() pour itérer les éléments. Cette méthode prend un seul paramètre qui est une interface fonctionnelle. Ainsi, vous pouvez passer une expression lambda comme argument. API Date/Time Java a introduit une nouvelle API de date et d'heure depuis Java 8. Le package contient des classes de date et d'heure en Java 8. Méthodes par défaut Java permet de créer des méthodes par défaut à l'intérieur d'une interface. Les méthodes définies à l'intérieur d'une interface et étiquetées avec le mot-clé « default » sont appelées méthodes par défaut. Ces méthodes sont des méthodes non abstraites et peuvent avoir un corps de méthode. API Stream Le package Java 8 se compose de classes et d'interfaces pour permettre des opérations de style fonctionnel sur les éléments.
Java 8 Nouveautés Answers
Java 8, Streams pour trouver les éléments en double
(11)
Devez-vous utiliser les idiomes java 8 (steams)? Une solution simple serait peut-être de déplacer la complexité vers une structure de données de type carte qui contiendrait les nombres comme clés (sans les répéter) et les fois où elle apparaît comme une valeur. Vous pourriez les itérer sur cette carte et faire quelque chose avec les nombres qui sont des occurrences> 1. import;
import;
public class RemoveDuplicates
{
public static void main(String[] args)
List numbers = (new Integer[]{1, 2, 1, 3, 4, 4});
Map countByNumber = new HashMap();
for(Integer n:numbers)
Integer count = (n);
if (count! = null) {
(n, count + 1);} else {
(n, 1);}}
(countByNumber);
Iterator it = countByNumber. entrySet(). iterator();
while (it. hasNext()) {
pair = ()();
(() + " = " + tValue());}}}
J'essaie de lister les éléments en double dans la liste des nombres entiers, par exemple, List numbers = (new Integer[]{1, 2, 1, 3, 4, 4});
Utiliser des flux de jdk 8.
forEach ( 10,
( key, value) ->
println ( String. join ( key, "->", value));
Pour des besoins plus spécifiques, on peut itérer sur les clés forEachKey() ou sur les valeurs forEachValue(). VII. Conclusion ▲
Cette conférence a permis d'aborder toutes ces petites améliorations et autres « diamants syntaxiques » qui simplifieront la vie des développeurs. On remarque qu'une partie de ces nouveautés profitent de l'introduction des Lambda et des Streams, notamment les collections. Ces fonctionnalités phares ont un impact très important dans le JDK. L'API Date & Time apporte un renouveau dans la gestion du temps, et comble les défauts des anciennes API Date et Calendar. Je conseille aux développeurs de s'intéresser à cette nouvelle version de Java. Elle apporte une évolution importante du langage, encore plus importante que l'arrivée de Java 5. Des évolutions majeures telles que les Lamdba ou les Streams ont un impact très fort sur les API du JDK et nécessiteront pour les développeurs de nouvelles façons de coder les algorithmes.