IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Java : une version à accès anticipé du JDK 13 est publiée,
Oracle veut unifier les deux méthodes de la classe GraphicsEnvironment

Le , par Bill Fassinou

973PARTAGES

13  1 
Alors que la première release candidate du JDK 12 vient à peine d’être publiée, le JDK 13 aussi vient d'être lancé avec une version à accès anticipé. L’article précédent sur la sortie de la RC1 du JDK 12 avait annoncé qu’en plus de la version 12 du kit de développement, il y aurait encore une seconde version. Il s’agit donc du JDK 13. Après deux mois en version bêta, la RC1 du JDK 12 est parue ce 15 février. Cette version a apporté huit fonctionnalités des neuf annoncées au départ. Ces huit fonctionnalités sont les suivantes :

  • Shenandoah : c’est un ramasse-miettes à faible temps de pause en effectuant le travail d’évacuation simultanée entre les threads Java en cours d’exécution. Les temps de pause sont indépendants de la taille du tas ;
  • suite Microbenchmark : c’est un outil pour aider les développeurs à utiliser les microcritères existant déjà dans le code source du JDK ou en créer de nouveaux ;
  • expression de commutation : apporte quelques modifications à l’instruction switch pour la rendre plus flexible ;
  • API de constantes JVM : permet d’ajouter une API pour les descriptions nominales des principaux artéfacts de classes et de fichiers de classe, en particulier les constantes pouvant être chargées à partir du pool de constantes ;

  • un apport AArch64, pas deux : sert à supprimer toutes les sources liées aux arm64port pour permettre à tous les contributeurs de concentrer leurs efforts sur une implémentation ARM 64 bits unique et d’éliminer le travail en double requis par la maintenance de deux ports ;
  • archives CDS par défaut : sert à améliorer le processus de génération JDK afin de générer une archive CDS (Class Data Sharing) à l’aide de la liste de classe par défaut sur des plateformes 64 bits ;
  • collections mélangées abandonnées pour G1 : permet d’annuler les collections d’éléments lorsqu’elles peuvent dépasser la cible de pause ;
  • retournez rapidement la mémoire validée non utilisée de G1 : améliore le récupérateur G1 pour qu’il puisse renvoyer automatiquement la mémoire heap de Java au système d’exploitation lorsqu’il est inactif.


Rappelons que, la seule fonctionnalité annoncée au départ et finalement absente de cette version concerne les littéraux de chaînes bruts. Cette fonctionnalité causait quelques problèmes d’implémentation notamment le choix des délimiteurs et la mauvaise interprétation des séquences d’échappement (\n par exemple). Brian Goetz, architecte Java chez Oracle a justifié l’abandon de cette fonctionnalité en déclarant ce qui suit :

« En examinant les commentaires que nous avons reçus, je ne suis plus convaincue que nous ayons encore trouvé le bon compromis entre complexité et expressivité, ou que nous en avons suffisamment exploré l’espace de conception pour être sûr que la conception actuelle est la meilleure que nous puissions faire. En le retirant, nous pouvons continuer à affiner la conception, explorer plus d'options et viser un aperçu répondant réellement aux exigences du processus de fonction de prévisualisation (JEP 12) ».

Alors, cette fonctionnalité peut-elle réapparaître dans le JDK 13 qui sera également publié en 2019 ? Même si les fonctionnalités d’une version à accès anticipé ne peuvent pas faire l’objet d’une disponibilité générale, Oracle l’a quand même publié pour ouvrir le débat sur les propositions, et des corrections. La note de versions ne présente pas beaucoup d’informations, mais quelques constructions ont été annoncées. Dans cette note, Oracle parle d’unifier deux méthodes de la classe GraphicsEnvironment (getCenterPoint() et getMaximumWindowBounds()) qui sont apparues dans le JDK depuis sa version 1.4. Dans le JDK 13, l’implémentation de ces méthodes est unifiée pour toutes les plateformes (Linux, Mac, Windows et Alpine Linux) et :

  • getCenterPoint renvoie les coordonnées du centre de l'affichage principal, pour toutes les plateformes ;
  • getMaximumWindowBounds renvoie les limites des insertions d'affichage primaire, pour toutes les plateformes.

La note de version du JDK 13 n’a pas abordé pour l’instant la réinsertion des littéraux de chaînes, mais certains internautes en parlent. Les quelques autres informations disponibles sur cette version à accès anticipé du JDK 13 sont disponibles sur le site de l’OpenJDK.

Source : OpenJDK

Et vous ?

Que pensez-vous du JDK 13 ?
Que proposeriez-vous pour l'intégration des littéraux de chaînes dans JDK 13 éventuellement ?
Êtes-vous pour ou contre cette unification des méthodes de la classe GraphicsEnvironment ? Pourquoi ?

Voir aussi

Java : Oracle publie la première release candidate du JDK 12 avec toutes les fonctionnalités majeures annoncées sauf les littéraux de chaînes bruts

Java : le JDK 12 est disponible en version bêta, il prend en charge Unicode 11 et dispose d'un nouveau format de clé privée codé x25519 et x448

Les littéraux de chaîne bruts ont été supprimés de Java 12 comme l'a suggéré la proposition d'amélioration JDK (JEP)

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de kaloo811
Membre à l'essai https://www.developpez.com
Le 20/02/2019 à 13:11
... ben, nous on passe tranquillement au JDK8.
4  0 
Avatar de Spleeen
Membre régulier https://www.developpez.com
Le 26/07/2019 à 16:23
Bonjour à tous

Nous accueillons l'ajout à ZGC avec joie, seulement qu'est-ce que cela change par rapport à G1 ou Shenandoah ? (j'ai peut-être mal compris...).

Tiens le "yield" me fait penser à Python 3 (mais rien à voir).

Donc, comme Java 12 c'est une version mineure passée en majeure... c'est dans l'air du temps...

Merci au rédacteur
2  0 
Avatar de Gugelhupf
Modérateur https://www.developpez.com
Le 20/02/2019 à 0:15
Que pensez-vous du JDK 13 ?
J'adore cette question, je viens à peine de rendre compatible de JDK 8 => OpenJDK 11 le codebase du projet de mon entreprise
1  0 
Avatar de OButterlin
Modérateur https://www.developpez.com
Le 20/08/2019 à 8:57
Citation Envoyé par Gugelhupf Voir le message
J'adore cette question, je viens à peine de rendre compatible de JDK 8 => OpenJDK 11 le codebase du projet de mon entreprise
Bien d'accord

Je me demande bien qui a le temps de faire suivre les versions Java, dans tous les cas, chez nous, je préconise l'usage exclusif des LTS.
Déjà comme ça avec Java 11 on a des problèmes de compatibilité avec certains outils (en particulier Jasper qui n'arrive plus à compiler), on n'a pas le temps de tous remettre en cause à chaque fois.
1  0 
Avatar de bouye
Rédacteur/Modérateur https://www.developpez.com
Le 19/09/2019 à 4:23
Une preview est disponible et ce devrait être fourni avec le JDK 14 sauf imprevu.
1  0 
Avatar de la.lune
Membre chevronné https://www.developpez.com
Le 04/11/2019 à 17:42
Juste une remarque. Il serait intéressant pour celui qui publie l'article de donner de petits bouts de code d’illustration que plus de littératures car les codeurs aiment le code et cela permettra d'apprendre facilement le basique de ses nouvelles fonctionnalités sans faire trop de recherches.

Alors moi personnellement j'ai aimé la facilité de l'expression switch suivant le style lambda avec la facilité du code par exemple
Code java : Sélectionner tout
1
2
3
4
5
6
7
8
  
    int resultat = switch (expStr){ 
     case "ab" -> 10; 
     case "cd",  "efg" -> 20 ; 
     case "hi" -> 30; 
     default -> 100; 
}; 
}

Pour ce qui est la galère d'écrire du texte dans une chaîne de caractère et le devoir de mettre toujours des \ pour les caractère spéciaux , ou perdre la bonne vue lors de l'impression au lieu de mettre des "\n" pour aller à la ligne ou le soucis des espace. Donc imaginez des expression comme ça, :
Code : Sélectionner tout
1
2
3
4
5
 String html="<html>\n"+                "       <body>\n" + 
                "           <p>\"Hello, world\"</p>\n" + 
                "       </body>\n" + 
 
               "  </html>";
En Java 13 on peut faire
Code : Sélectionner tout
1
2
3
4
5
6
7
 String html = """                <html> 
                  <body> 
                      <p>"Hello, world"</p> 
                  </body> 
                </html> 
                """; 
System.out.println(html);
ça va afficher intégralement tel qu'on l'a écrit en gardant même les espaces.
Code xml : Sélectionner tout
1
2
3
4
5
6
  
<html> 
  <body> 
      <p>"Hello, world"</p> 
  </body> 
</html>
Et cette galère
Code : Sélectionner tout
1
2
3
String json="\{ \"liste\" :"+ 
                             "\{ \"prenom\" : \"Fabien\"\}"+ 
                              "\}"
Peut être remplacé par
Code json : Sélectionner tout
1
2
3
4
5
String json=""" 
                   { "liste" : 
                             { "prenom" : "Fabien"} 
                     } 
                       """
1  0 
Avatar de Jonathan muswil
Membre à l'essai https://www.developpez.com
Le 28/07/2019 à 6:31
Bien suis vraiment touché par cette nouvelle jdk surtout l'archivage de classe oracle doit toujours l'amélioré
0  0 
Avatar de CoderInTheDark
Membre émérite https://www.developpez.com
Le 19/08/2019 à 20:59
En premier point je ne suis pas fan de ce rythme de versions.
J'ai parfois du mal à m'y retrouver.
Quels étaient les avancées de chaques versions ?
Pour moi la version 9 et 10 étaient juste des sujet de curiosités, et à mon avis n'ont pas beaucoup d'intérêt, comme tout le monde je pense je m'en suis remis à la 11.

Les nouveautés concernant Mes blocs de texte me semblent intéressantes, surtout si cela tiens la promesse de pouvoir les écrire plus facilement.
0  0 
Avatar de deltree
Membre confirmé https://www.developpez.com
Le 18/09/2019 à 17:14
Tient je m'attendais voir apparaitre la commande "jPackage", la JEP 343 https://openjdk.java.net/jeps/343 qui était disponible en early. mais elle est toujours en candidate.

Pour info c'est un outils de packaging qui peut fonctionner avec les version actuelle en le téléchargeant séparément. Je le trouve intéressant pour une chaine de continuous delivery, notamment la possibilité de livrer de DEB/RPM/MSI. Mais pour une prochaine version donc.
0  0 
Avatar de wax78
Modérateur https://www.developpez.com
Le 19/09/2019 à 14:38
Les "blocs de texte" ... enfin ^^
0  0