QimTech

Java 17 : les nouveautés

Tout ce que vous avez toujours voulu savoir sur Java 17 : améliorations, nouveautés, téléchargement, se former.
Java17 by Qim info

Java 17 est une version majeure du langage Java, conçue pour offrir plus de performance, de stabilité et de sécurité en environnement de production. En résumé :

  • Java 17 est une version LTS avec support long terme.
  • Elle introduit des nouveautés clés du langage (records, classes scellées, nouveau switch).
  • Elle est adaptée aux environnements cloud et conteneurisés.
Sommaire

Présentation de Java 17

Le langage Java

Java est un langage de programmation indispensable au développement informatique, dans la mesure où beaucoup d’évolutions reposent sur son utilisation : employé aussi bien sur les ordinateurs que les smartphones ou encore les consoles de jeux, il s’avère incontournable. 

Jusqu’à Java 8, les versions majeures de Java étaient publiées à plusieurs années d’intervalle. Depuis Java 9 (2017), Java suit un cycle de publication tous les six mois.

💡Nos articles sur les langages les plus utilisés pour le développement d’un logiciel ou sur le développement d’un logiciel sur mesure pourraient vous intéresser.

 


 

Et Java 21 ? Java 17 reste l'une des versions les plus utilisées en entreprise grâce à son statut LTS et à son support jusqu'en 2029, même si Java 21 est désormais la version LTS recommandée pour les nouveaux projets.

Les spécificités de Java 17

Il s’agit d’une version majeure, qui représente les efforts constants d’Oracle pour améliorer et moderniser son langage de programmation phare. Oracle s’est fondé à la fois sur les versions précédentes de Java pour les faire évoluer, mais a aussi pris en compte les tendances en matière de programmation.

Ainsi, Java 17 est le fruit de nombreuses améliorations de performances, de nouvelles fonctionnalités de langage, de corrections de bugs et d’améliorations de sécurité. Conformément à la stratégie de lancement d’Oracle, étant une version LTS, Java 17 bénéficie d’un support à long terme, ce qui signifie qu’il recevra des mises à jour de sécurité et de bugs jusqu’en 2029.

C’est un avantage non négligeable, qui rend cette version particulièrement adaptée à une utilisation en environnement de production.

Pourquoi utiliser Java 17 ?

Voici quelques-uns des avantages de Java 17 les plus remarquables :

  • La prise en charge native de macOS/AArch64 via le JEP 391, permettant l’exécution de Java sur les processeurs Apple Silicon (M1 et suivants) sans recourir à l’émulation Rosetta 2.
  • À partir de Java 17, Oracle distribue son JDK sous la licence Oracle No-Fee Terms and Conditions (NFTC), qui permet notamment une utilisation gratuite, y compris en production, pendant la période de support prévue par Oracle.
  • Un langage très utilisé : d’après le rapport de New Relic State of the Java Ecosystem publié en 2022, Java 17 a dépassé les versions Java 6, Java 10 et Java 16 au cours des quelques mois écoulés depuis sa sortie. 
  • Java 17 s’inscrit dans un contexte de généralisation des architectures cloud et conteneurisées, auxquelles la JVM s’est progressivement adaptée grâce à une meilleure prise en compte des ressources allouées aux conteneurs.
  • Un intervalle raccourci entre les versions Support Long Term (LTS) : puisque les applications d’entreprise utilisent largement Java, la stabilité est essentielle. Les versions LTS ont été créées pour que les utilisateurs bénéficient d’un support étendu. Ainsi, ces versions deviennent naturellement plus stables et sécurisées. Depuis Java 17, l’intervalle entre les versions LTS est désormais de deux ans au lieu de trois.

Améliorations de Java 17 par rapport à ses versions antérieures

Classes et interfaces scellées

Nous sommes tous familiers avec l’héritage, pilier fondateur de la logique de programmation orientée objet.

Avec les classes scellées, il est désormais possible de définir avec précision le périmètre d’une classe, en indiquant quelles classes seront autorisées à en hériter. Cela fonctionne aussi avec les interfaces et leurs implémentations.

La mise en place de cette nouveauté passe par l’ajout de 2 mots clés : sealed et permits. Voyons tout cela au moyen d’un exemple.

J’ai défini ici une interface scellée nommée Service (notez la présence du mot-clé sealed). Seules les classes Voiture et Camion pourront implémenter cette interface, grâce au mot-clé permits.

Blocs de texte

Il est enfin possible de créer des blocs de texte de façon simple ! Cette nouvelle syntaxe s’avère très utile pour écrire du xml ou du json, par exemple.

Notons que les espaces sont gardées et donc l’indentation du bloc de texte sera respectée.

Type Record

Un record permet de créer  facilement des objets immutables. Voilà un exemple avec une classe Personne, qui contient des données liées à une personne (nom, âge…).

Voici la syntaxe utilisée dans la plupart des cas avant Java 17 pour définir cette classe :

Et voici la nouvelle syntaxe Java 17. 

Comme on peut le voir, les attributs du record sont définis de manière beaucoup plus lisible et nécessitent moins de code fastidieux.

Il y a cependant une contrainte notable avec ce nouveau type : puisque la classe est finale, elle ne peut pas hériter d’autres classes.

Pattern matching

Cette fonctionnalité concerne le mot-clé instanceof, qui permet de vérifier le type d’un objet.

Il n’est désormais plus nécessaire de créer un objet en faisant un cast. Avec la nouvelle syntaxe, l’objet est créé au moment de l’appel à instanceof et il est possible de faire directement appel à ses propriétés par la suite, sans avoir à passer par un objet temporaire.

Nouveau Switch

La nouvelle syntaxe des switch permet une réduction drastique du nombre de lignes de code.

Il est désormais possible de retourner une valeur grâce à un switch.

Par ailleurs, le nouveau switch permet d’inclure la nouvelle syntaxe de pattern matching présentée dans le paragraphe précédent et de créer des conditions dans les clauses.

Comment télécharger Java 17 ?

Vérifier que des versions antérieures ne sont pas installées sur votre OS

Pour cela, il faut lancer l’invite de commande et écrire “java – version”. Dans le cas où aucune version antérieure n’est installée, vous verrez apparaître le message suivant : “ ‘’java’ n’est pas reconnu en tant que commande interne ou externe, un programme exécutable ou un fichier de commandes”.

Dans le cas contraire, vous devez désinstaller la version antérieure.

Télécharger le kit correspondant à votre OS

Pour cela, accédez aux versions d’archives sur Oracle et choisissez la 17. Comme le rappelle Oracle, les anciennes versions du JDK (environnement de développement) sont fournies pour aider les développeurs à déboguer les problèmes des systèmes plus anciens. Ils ne sont pas mis à jour avec les derniers correctifs de sécurité et ne sont donc pas recommandés pour une utilisation en production. 

Comment apprendre Java 17 ?

Nous vous proposons de vous tourner vers 2 méthodes, valables d’ailleurs pour chaque version de Java.

Pour les autodidactes : livres, tutoriels, articles…​

Nous vous conseillons bien entendu de choisir des documents relativement récents, qui prennent en compte les dernières évolutions technologiques.

La sphère Internet regorge d’informations précieuses, qui vous aideront à y voir plus clair. 

Nous pouvons par exemple vous conseiller certaines vidéos YouTube, comme la chaîne Graven Développement

De même, le MOOC créé par l’Ecole Polytechnique de Lausanne peut vous fournir des bases efficaces en codage avec Java.

Pour les développeurs confirmés : les certifications

Les certifications présentent deux avantages essentiels : le premier est de vous encourager à devenir un expert dans votre domaine, le second est d’offrir une reconnaissance de vos compétences et de vos connaissances. Parmi les certifications existantes, nous en présenterons deux.

  • La certification Java Foundations 1Z0–81 : c’est la première certification qu’un tout nouveau développeur Java devrait obtenir. Il s’agit d’un examen de niveau fondamental, qui démontre votre compréhension du langage et des concepts de programmation Java. Il valide vos compétences sur la façon d’écrire et d’exécuter un programme Java, de travailler avec le kit de développement Java (JDK) et l’environnement d’exécution Java (JRE).
  • La certification Java SE 17 (1Z0-829) : cet examen dure 90 minutes et vous permet d’être certifié développeur professionnel par Oracle pour Java 17. 

 

Vous avez désormais toutes les clés en main pour aborder Java 17 sereinement ! Nous espérons que cet article vous aura été utile. Nous vous invitons à consulter les articles de notre rubrique Qim Tech qui pourront vous éclairer sur d’autres points et notre article sur le développeur Java. Peut-être que notre guide sur Angular et React pourra également vous êtres utile.

FAQ

Quelle est la date de sortie de Java 17 ?

Septembre 2021.

Si l’on devait retenir une seule différence majeure, ce serait que Java 17 introduit des évolutions importantes du langage qui rendent le code plus expressif, plus sûr et plus facile à maintenir, alors que Java 11 était surtout une version de consolidation après les changements structurels introduits par Java 9.

Oui, c’est même l’une des versions les plus répandues en entreprise, pour plusieurs raisons : 

  • Java 17 est une version LTS (Long Term Support).
  • Oracle assure son support jusqu’en septembre 2029 (support étendu), et de nombreux distributeurs OpenJDK la supportent également pendant plusieurs années.
  • De nombreuses entreprises privilégient la stabilité et ne migrent pas à chaque nouvelle version semestrielle.
Table des matières

Découvrez notre département Custom Software Development

Créez le logiciel ou l’application web 100% adapté à vos besoins métiers.