{"id":2165,"date":"2026-07-10T11:56:21","date_gmt":"2026-07-10T09:56:21","guid":{"rendered":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/?p=2165"},"modified":"2026-07-10T12:03:57","modified_gmt":"2026-07-10T10:03:57","slug":"francais-java-27-quoi-de-neuf","status":"publish","type":"post","link":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/informatique\/java-27-quoi-de-neuf\/","title":{"rendered":"Java 27 : Quoi de neuf ?"},"content":{"rendered":"<p>Maintenant que Java 27 est <strong>feature complete<\/strong> (Rampdown Phase One au jour d\u2019\u00e9criture de l\u2019article), c\u2019est le moment de faire le tour des fonctionnalit\u00e9s qu\u2019apporte cette nouvelle version pour nous, les d\u00e9veloppeurs.<\/p>\n<p>Cet article fait partie d\u2019une s\u00e9rie d\u2019articles sur les <a href=\"https:\/\/www.loicmathieu.fr\/wordpress\/tag\/whatsnew\/\">nouveaut\u00e9s des derni\u00e8res versions de Java<\/a>, pour ceux qui voudraient les lire, en voici les liens : <a href=\"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/informatique\/java-26-quoi-de-neuf\/\">Java 26<\/a>, <a href=\"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/informatique\/java-25-quoi-de-neuf\/\">Java 25<\/a>, <a href=\"https:\/\/www.loicmathieu.fr\/wordpress\/informatique\/java-24-quoi-de-neuf\/\">Java 24<\/a>, <a href=\"https:\/\/www.loicmathieu.fr\/wordpress\/informatique\/java-23-quoi-de-neuf\/\">Java 23<\/a>, <a href=\"https:\/\/www.loicmathieu.fr\/wordpress\/informatique\/java-22-quoi-de-neuf\/\">Java 22<\/a>, <a href=\"https:\/\/www.loicmathieu.fr\/wordpress\/informatique\/java-21-quoi-de-neuf\/\">Java 21<\/a>, <a href=\"https:\/\/www.loicmathieu.fr\/wordpress\/informatique\/java-20-quoi-de-neuf\/\">Java 20<\/a>, <a href=\"https:\/\/www.loicmathieu.fr\/wordpress\/informatique\/java-19-quoi-de-neuf\/\">Java 19<\/a>, <a href=\"https:\/\/www.loicmathieu.fr\/wordpress\/informatique\/java-18-quoi-de-neuf\/\">Java 18<\/a>, <a href=\"https:\/\/www.loicmathieu.fr\/wordpress\/informatique\/java-17-quoi-de-neuf\/\">Java 17<\/a>, <a href=\"https:\/\/www.loicmathieu.fr\/wordpress\/informatique\/java-16-quoi-de-neuf\/\">Java 16<\/a>, <a href=\"https:\/\/www.loicmathieu.fr\/wordpress\/informatique\/java-15-quoi-de-neuf\/\">Java 15<\/a>, <a href=\"http:\/\/www.loicmathieu.fr\/wordpress\/informatique\/java-14-quoi-de-neuf\/\">Java 14<\/a>, <a href=\"http:\/\/www.loicmathieu.fr\/wordpress\/informatique\/java-13-quoi-de-neuf\/\">Java 13<\/a>, <a href=\"http:\/\/www.loicmathieu.fr\/wordpress\/informatique\/java-12-quoi-de-neuf\/\">Java 12<\/a>, <a href=\"http:\/\/www.loicmathieu.fr\/wordpress\/informatique\/java-11-quoi-de-neuf\/\">Java 11<\/a>, <a href=\"http:\/\/www.loicmathieu.fr\/wordpress\/informatique\/java-10-quoi-de-neuf\/\">Java 10<\/a>, et <a href=\"http:\/\/www.loicmathieu.fr\/wordpress\/informatique\/les-nouveautes-de-java-9-pour-les-developpeurs\/\">Java 9<\/a>.<\/p>\n<p>Apr\u00e8s Java 26 et ses 10 JEPs, Java 27 arrive avec un petit nombre de JEPs, 9, avec tr\u00e8s peu de nouvelles fonctionnalit\u00e9s.<\/p>\n<h2>JEP 523 : Make G1 the Default Garbage Collector in All Environments<\/h2>\n<p><strong>G1<\/strong> a \u00e9t\u00e9 d\u00e9fini comme Garbage Collector par d\u00e9faut en Java 9. \u00c0 ce moment-l\u00e0, des tests ont montr\u00e9 que pour les environnements avec un CPU (ou moins) et moins de 1792 Mo de heap, le Garbage Collector <strong>Serial<\/strong> \u00e9tait plus performant. La JVM utilisait donc <strong>Serial<\/strong> par d\u00e9faut dans ces cas-l\u00e0.<\/p>\n<p>Mais depuis, <strong>G1<\/strong> a \u00e9t\u00e9 am\u00e9lior\u00e9, et des tests ont montr\u00e9 que <strong>G1<\/strong> \u00e9quivalait \u00e0 <strong>Serial<\/strong> pour toutes les tailles de heap. Avec les am\u00e9liorations pour r\u00e9duire la synchronisation (<a href=\"https:\/\/openjdk.org\/jeps\/522\">JEP 522<\/a>), <strong>G1<\/strong> performe maintenant aussi bien que <strong>Serial<\/strong>, m\u00eame pour un nombre r\u00e9duit de CPU. Finalement, <strong>G1<\/strong> a aussi vu une baisse de sa consommation de m\u00e9moire native, \u00e0 des niveaux comparables \u00e0 ceux de <strong>Serial<\/strong>.<\/p>\n<p>Logiquement, <strong>G1<\/strong> \u00e9tant \u00e9gal ou sup\u00e9rieur \u00e0 <strong>Serial<\/strong> sur tous les crit\u00e8res, m\u00eame dans des environnements avec peu de CPU et\/ou peu de RAM, il est maintenant le d\u00e9faut dans tous les environnements.<\/p>\n<p>Plus d&rsquo;informations dans la <a href=\"https:\/\/openjdk.org\/jeps\/523\">JEP 523<\/a>.<\/p>\n<h2>JEP 527 : Post-Quantum Hybrid Key Exchange for TLS 1.3<\/h2>\n<p>Renforce la s\u00e9curit\u00e9 des applications Java n\u00e9cessitant des communications r\u00e9seau s\u00e9curis\u00e9es en mettant en \u0153uvre des <a href=\"https:\/\/datatracker.ietf.org\/doc\/draft-ietf-tls-hybrid-design\">algorithmes hybrides d&rsquo;\u00e9change de cl\u00e9s<\/a> pour TLS 1.3. Ces algorithmes permettent de se pr\u00e9munir contre les futures attaques par informatique quantique en combinant un algorithme r\u00e9sistant \u00e0 l&rsquo;informatique quantique avec un algorithme traditionnel.<\/p>\n<p>Un algorithme hybride d&rsquo;\u00e9change de cl\u00e9s combine un algorithme r\u00e9sistant aux attaques quantiques avec un algorithme traditionnel, et reste s\u00fbr tant que l&rsquo;un des deux algorithmes n&rsquo;est pas cass\u00e9. Cette approche permet de se pr\u00e9munir contre les attaques quantiques tout en reconnaissant que ces nouveaux algorithmes n&rsquo;ont pas encore b\u00e9n\u00e9fici\u00e9 des ann\u00e9es de tests et d&rsquo;analyses d\u00e9j\u00e0 effectu\u00e9s sur les algorithmes traditionnels.<\/p>\n<p>L\u2019impl\u00e9mentation de TLS 1.3 du JDK va prendre en charge trois nouveaux sch\u00e9mas hybrides d\u2019\u00e9change de cl\u00e9s post-quantiques, qui combinent le <em>Module-Lattice-Based Key-Encapsulation Mechanism<\/em> (ML-KEM \u2013 ajout\u00e9 via la <a href=\"https:\/\/openjdk.org\/jeps\/496\">JEP 496<\/a>) avec les algorithmes traditionnels de <em>Diffie-Hellman<\/em> \u00e0 courbe elliptique \u00e9ph\u00e9m\u00e8re (ECDHE) :<\/p>\n<ul><li><strong>X25519MLKEM768<\/strong> : sch\u00e9ma hybride combinant ECDHE avec X25519 et ML-KEM-768,<\/li>\n<li><strong>SecP256r1MLKEM768<\/strong> : sch\u00e9ma hybride combinant ECDHE utilisant la courbe secp256r1 avec ML-KEM-768,<\/li>\n<li><strong>SecP384r1MLKEM1024<\/strong> : sch\u00e9ma hybride combinant ECDHE utilisant la courbe secp384r1 avec ML-KEM-1024.<\/li>\n<\/ul>\n<p>Plus d&rsquo;informations dans la <a href=\"https:\/\/openjdk.org\/jeps\/527\">JEP 527<\/a>.<\/p>\n<h2>JEP 534 : Compact Object Headers by Default<\/h2>\n<p><strong>Compact object headers<\/strong> permet \u00e0 la JVM de stocker le header des objets sur 64 bits au lieu de 128 : 22 bits pour le pointeur de classe, 31 bits pour le hash code, 4 bits r\u00e9serv\u00e9s pour Valhalla, et les bits restants comme pr\u00e9c\u00e9demment pour l\u2019\u00e2ge GC et les flags de la JVM.<\/p>\n<p>Les <strong>compact object headers<\/strong> ont \u00e9t\u00e9 introduits en tant que structure alternative d&rsquo;en-t\u00eate d&rsquo;objet en preview en Java 24 via la <a href=\"https:\/\/openjdk.org\/jeps\/450\">JEP 450<\/a>, puis sont sortis de preview en Java 25.<\/p>\n<p>Depuis lors, les <strong>compact object headers<\/strong> ont prouv\u00e9 leur stabilit\u00e9 et leurs performances.<\/p>\n<p>Elles ont \u00e9t\u00e9 test\u00e9es chez Oracle \u00e0 l\u2019aide de la suite compl\u00e8te de tests du JDK. Elles ont \u00e9galement \u00e9t\u00e9 test\u00e9es chez Amazon et SAP, qui les ont activ\u00e9s par d\u00e9faut.<\/p>\n<p>Diverses exp\u00e9riences d\u00e9montrent que l\u2019activation des <strong>compact object headers<\/strong> am\u00e9liore les performances :<\/p>\n<ul>\n<li>Le benchmark SPECjbb2015 utilise 22 % d\u2019espace de heap en moins et 8 % de temps CPU en moins.<\/li>\n<li>Le nombre de garbage collections effectu\u00e9es par SPECjbb2015 est r\u00e9duit de 15 %, tant avec le collecteur G1 qu\u2019avec le collecteur parall\u00e8le.<\/li>\n<li>Un benchmark de parseur JSON hautement parall\u00e8le s&rsquo;ex\u00e9cute 10 % plus rapidement.<\/li>\n<\/ul>\n<p>En Java 27, les <strong>compact object headers<\/strong> sont activ\u00e9s par d\u00e9faut. Il est pr\u00e9vu de d\u00e9pr\u00e9cier l&rsquo;ancien layout dans une release future.<\/p>\n<p>Plus d&rsquo;informations dans la <a href=\"https:\/\/openjdk.org\/jeps\/534\">JEP 534<\/a>.<\/p>\n<h2>JEP 536 : JFR In-Process Data Redaction<\/h2>\n<p>Les fichiers d&rsquo;enregistrement JFR contiennent les arguments de ligne de commande ainsi que les valeurs des variables d&rsquo;environnement et des propri\u00e9t\u00e9s syst\u00e8me, ce qui permet de voir comment le processus a \u00e9t\u00e9 lanc\u00e9 et configur\u00e9. Ces \u00e9v\u00e9nements peuvent donc contenir des donn\u00e9es sensibles, telles que des secrets dans les arguments de ligne de commande, les variables d&rsquo;environnement et les propri\u00e9t\u00e9s syst\u00e8me. \u00c0 l&rsquo;heure actuelle, ces donn\u00e9es apparaissent telles quelles dans les fichiers d&rsquo;enregistrement, ce qui pr\u00e9sente un risque de fuite d&rsquo;informations sensibles lorsque les enregistrements sont partag\u00e9s.<\/p>\n<p>JFR va d\u00e9sormais masquer par d\u00e9faut de nombreux types d\u2019informations sensibles, sans aucune configuration suppl\u00e9mentaire.<\/p>\n<p>Vous pouvez s\u00e9lectionner explicitement les informations que JFR doit masquer gr\u00e2ce \u00e0 de nouvelles sous-options de l&rsquo;option de ligne de commande existante <code>-XX:FlightRecorderOptions<\/code>. Chaque sous-option sp\u00e9cifie un ou plusieurs filtres qui s\u00e9lectionnent les arguments de ligne de commande, les variables d&rsquo;environnement et les propri\u00e9t\u00e9s syst\u00e8me \u00e0 masquer.<\/p>\n<p>La sous-option <code>redact-argument<\/code> sp\u00e9cifie une liste de filtres pour les arguments de ligne de commande, et la sous-option <code>redact-key<\/code> sp\u00e9cifie une liste de filtres pour les paires cl\u00e9-valeur sous forme de variables d\u2019environnement et de propri\u00e9t\u00e9s syst\u00e8me.<\/p>\n<p>Les filtres utilisent des <em>patterns glob<\/em>, o\u00f9 <code>*<\/code> et <code>?<\/code> sont des caract\u00e8res g\u00e9n\u00e9riques. Si un filtre correspond \u00e0 un argument ou \u00e0 une cl\u00e9, l\u2019argument ou la valeur de la cl\u00e9 est enregistr\u00e9(e) dans l\u2019\u00e9v\u00e9nement sous la forme <code>[REDACTED]<\/code>. Les filtres multiples sont s\u00e9par\u00e9s par des points-virgules et sont \u00e9valu\u00e9s dans l\u2019ordre indiqu\u00e9. Les diff\u00e9rentes sous-options de <code>-XX:FlightRecorderOptions<\/code> sont s\u00e9par\u00e9es par des virgules.<\/p>\n<p>Par exemple, pour masquer toute variable d\u2019environnement ou propri\u00e9t\u00e9 syst\u00e8me nomm\u00e9e \u00ab confidential \u00bb ou \u00ab CONFIDENTIAL \u00bb, ainsi que tout argument de ligne de commande ressemblant \u00e0 une URL contenant un nom d\u2019utilisateur et un mot de passe (c\u2019est-\u00e0-dire <a>username:password@host<\/code>code&gt;username:password@host&lt;\/code<\/a>), utilisez :<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\njava -XX:FlightRecorderOptions:&#039;redact-key=confidential,redact-argument=https:\/\/*:*@*&#039; \\\n       -XX:StartFlightRecording:filename=dump.jfr \\\n       -Dconfidential=ANOTHER_SECRET \\\n       -jar application.jar https:\/\/john:YET_ANOTHER_SECRET@example.com\/login --verbose\n<\/pre>\n<p>Pour v\u00e9rifier que les informations sensibles ont bien \u00e9t\u00e9 masqu\u00e9es, utilisez la commande <code>jfr print<\/code> :<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\n$ jfr print \\\n      --events InitialSystemProperty,InitialEnvironmentVariable \\\n      dump.jfr\n[...]\njdk.InitialEnvironmentVariable {\n  startTime = 17:39:02.244 (2026-02-15)\n  key = &quot;CONFIDENTIAL&quot;\n  value = &quot;[REDACTED]&quot;\n}\n<\/pre>\n<h2>Les fonctionnalit\u00e9s qui sortent de preview<\/h2>\n<p>Les fonctionnalit\u00e9s suivantes sortent de preview (ou du module incubator) et passent en standard :<\/p>\n<p><strong>Aucune !<\/strong><\/p>\n<p>C&rsquo;est assez rare pour le souligner. Une partie des fonctionnalit\u00e9s qui sont en preview depuis longtemps sont bloqu\u00e9es en attente du projet Valhalla.<\/p>\n<h2>Les fonctionnalit\u00e9s qui restent en preview<\/h2>\n<p>Les fonctionnalit\u00e9s suivantes restent en preview (ou en incubator module) :<\/p>\n<ul><li><a href=\"https:\/\/openjdk.org\/jeps\/531\">JEP 531<\/a> \u2013 <strong>Lazy Constants<\/strong> : troisi\u00e8me preview, nouvelle API permettant de cr\u00e9er des constantes initialis\u00e9es \u00e0 la demande. Deux changements : suppression des m\u00e9thodes de bas niveau <code>isInitialized<\/code> et <code>orElse<\/code>, ajout d&rsquo;une m\u00e9thode factory <code>Set.ofLazy(...)<\/code>.<\/li>\n<li><a href=\"https:\/\/openjdk.org\/jeps\/532\">JEP 532<\/a> \u2013 <strong>Primitive Types in Patterns, instanceof, and switch<\/strong> : cinqui\u00e8me preview ajoute le support des types primitifs dans les <code>instanceof<\/code> et les <code>switch<\/code>, et enrichit le pattern matching pour supporter des patterns de types primitifs : dans les <code>instanceof<\/code>, dans les cases des <code>switch<\/code>, et dans la d\u00e9construction d\u2019un record* Aucun changement.<\/li>\n<li><a href=\"https:\/\/openjdk.org\/jeps\/533\">JEP 533<\/a> \u2013 <strong>Structured Concurrency<\/strong> : septi\u00e8me preview, nouvelle API permettant de simplifier l\u2019\u00e9criture de code multithread\u00e9 en permettant de traiter plusieurs t\u00e2ches concurrentes comme une unit\u00e9 de traitement unique. Plusieurs changements \u00e0 l&rsquo;interface <code>Joiner<\/code> : la m\u00e9thode <code>join()<\/code> admet un troisi\u00e8me argument pour l&rsquo;exception qu&rsquo;un <code>StructuredTaskScope<\/code> peut lever ; <code>awaitAll()<\/code> a \u00e9t\u00e9 supprim\u00e9 au profit de <code>allSuccessfulOrThrow()<\/code>, <code>anySuccessfulOrThrow()<\/code>, et <code>awaitAllSuccessfulOrThrow()<\/code>, qui cr\u00e9ent des joiner qui l\u00e8vent une <code>ExecutionException<\/code> en cas d&rsquo;exception ; <code>onTimeout()<\/code> a \u00e9t\u00e9 remplac\u00e9 par <code>timeout()<\/code>.<\/li>\n<li><a href=\"https:\/\/openjdk.org\/jeps\/537\">JEP 537<\/a> \u2013 <strong>Vector API<\/strong> : douzi\u00e8me incubator API permettant d\u2019exprimer des calculs vectoriels qui se compilent au moment de l\u2019ex\u00e9cution en instructions vectorielles pour les architectures CPU prises en charge. Aucun changement. Il a \u00e9t\u00e9 act\u00e9 dans la JEP que la Vector API sera en incubation tant que les fonctionnalit\u00e9s du projet Valhalla ne seront pas disponibles en preview. Ce qui \u00e9tait attendu, car la Vector API pourra alors tirer parti des am\u00e9liorations de performance et de repr\u00e9sentation en m\u00e9moire que devrait apporter le projet Valhalla.<\/li>\n<li><a href=\"https:\/\/openjdk.org\/jeps\/538\">JEP 538<\/a> \u2013 <strong>PEM Encodings of Cryptographic Objects<\/strong> : troisi\u00e8me preview, nouvelle API qui apporte le support du format <em>Privacy-Enhanced Mail<\/em> (PEM) \u00e0 Java. Ajout de constructeurs qui prennent en entr\u00e9e des tableaux d&rsquo;octets encod\u00e9s en BASE64 \u00e0 la classe <code>PEM<\/code> ; <code>DEREncodable<\/code> a \u00e9t\u00e9 renomm\u00e9 en <code>BinaryEncodable<\/code> ; ajout de la m\u00e9thode <code>EncryptedPrivateKeyInfo.getKeyPair()<\/code> et ajout d&rsquo;une exception <code>CryptoException<\/code> utilis\u00e9e pour signaler les exceptions cryptographiques.<\/li>\n<\/ul>\n<p>Pour les d\u00e9tails sur celles-ci, vous pouvez vous r\u00e9f\u00e9rer \u00e0 mes articles pr\u00e9c\u00e9dents.<\/p>\n<h2>Divers<\/h2>\n<p>Divers ajouts au JDK :<\/p>\n<ul><li><code>Math.acosh(double)<\/code> et <code>StrictMath.acosh(double)<\/code> : renvoie l&rsquo;inverse du cosinus hyperbolique d&rsquo;une valeur de type <code>double<\/code>.<\/li>\n<li><code>Math.asinh(double)<\/code> et <code>StrictMath.asinh(double)<\/code> : renvoie l&rsquo;inverse du sinus hyperbolique d&rsquo;une valeur de type <code>double<\/code>.<\/li>\n<li><code>Math.atanh(double)<\/code> et <code>StrictMath.atanh(double)<\/code> : renvoie l&rsquo;inverse de la tangente hyperbolique d&rsquo;une valeur de type <code>double<\/code>.<\/li>\n<li><code>String.encodedLength(Charset)<\/code> : renvoie la longueur, en octets, de cette cha\u00eene de caract\u00e8res encod\u00e9e avec le jeu de caract\u00e8res indiqu\u00e9.<\/li>\n<li><code>BigDecimal.rootn(int, MathContext)<\/code> : renvoie une approximation de la racine n-i\u00e8me de cette valeur, arrondie selon les param\u00e8tres de contexte.<\/li>\n<li><code>DateTimeFormatter<\/code> supporte maintenant les offsets de timezone courts (<code>+01<\/code> au lieu de <code>+01:00<\/code>), voir <a href=\"https:\/\/bugs.openjdk.org\/browse\/JDK-8210336\">JDK-8210336<\/a>.<\/li>\n<\/ul>\n<p>La totalit\u00e9 des nouvelles API du JDK 27 peut \u00eatre trouv\u00e9e dans <a href=\"https:\/\/javaalmanac.io\/jdk\/27\/apidiff\/26\/\">The Java Version Almanac \u2013 New APIs in Java 27<\/a>.<\/p>\n<h2>Des changements internes, de la performance et de la s\u00e9curit\u00e9<\/h2>\n<p>Comme toutes les nouvelles versions de Java, OpenJDK 27 contient son lot d&rsquo;optimisations de performance et d&rsquo;am\u00e9liorations de s\u00e9curit\u00e9.<\/p>\n<p>C\u00f4t\u00e9 performance, j&rsquo;ai not\u00e9 deux am\u00e9liorations int\u00e9ressantes :<\/p>\n<ul>\n<li><code>HashMap.putAll()<\/code> a maintenant un raccourci quand la Map est une HashMap, qui va directement appeler <code>putHashMapEntries()<\/code>, ce qui am\u00e8ne une am\u00e9lioration de 66 \u00e0 86 % (<a href=\"https:\/\/github.com\/openjdk\/jdk\/pull\/28243\">PR #28243<\/a>) ;<\/li>\n<li>un nouvel intrinsic pour l&rsquo;architecture AVX2 a \u00e9t\u00e9 ajout\u00e9 pour les binary search, ce qui am\u00e8ne une am\u00e9lioration de 1,5x \u00e0 2,35x pour les tableaux au-dessus d&rsquo;un certain seuil (<em>int<\/em>=256, <em>long<\/em>=768, <em>short<\/em>=512, <em>char<\/em>=512) (<a href=\"https:\/\/github.com\/openjdk\/jdk\/pull\/30612\">PR #30612<\/a>).<\/li>\n<\/ul>\n<p>C\u00f4t\u00e9 s\u00e9curit\u00e9, on peut citer :<\/p>\n<ul>\n<li>l&rsquo;ajout du support de la compression des certificats TLS (<a href=\"https:\/\/bugs.openjdk.org\/browse\/JDK-8372526\">JDK-8372526<\/a>) ;<\/li>\n<li>l&rsquo;ajout des certificats WISeKey au truststore de la JVM (<a href=\"https:\/\/bugs.openjdk.org\/browse\/JDK-8372351\">JDK-8372351<\/a>) ;<\/li>\n<li>une nouvelle commande <code>jcmd VM.security_properties<\/code> pour lister les propri\u00e9t\u00e9s de s\u00e9curit\u00e9 activ\u00e9es (<a href=\"https:\/\/bugs.openjdk.org\/browse\/JDK-8364182\">JDK-8364182<\/a>).<\/li>\n<\/ul>\n<p><code>jcmd<\/code>, la commande de management tout-en-un de la JVM, supporte maintenant la compl\u00e9tion bash (<a href=\"https:\/\/bugs.openjdk.org\/browse\/JDK-8357439\">JDK-8357439<\/a>).<\/p>\n<p>La fonctionnalit\u00e9 exp\u00e9rimentale JVM Compiler Interface (JVMCI) a \u00e9t\u00e9 supprim\u00e9e (<a href=\"https:\/\/bugs.openjdk.org\/browse\/JDK-8382582\">JDK-8382582<\/a>). En citant les notes de release :<em>Le JVMCI proposait une API Java interne exp\u00e9rimentale permettant d&rsquo;\u00e9crire en Java un compilateur JIT pouvant \u00eatre appel\u00e9 par Hotspot. Apr\u00e8s plus d&rsquo;une d\u00e9cennie d&rsquo;exp\u00e9rimentation, les co\u00fbts li\u00e9s \u00e0 sa maintenance et \u00e0 ses tests au sein du JDK ont fini par l&#8217;emporter sur les avantages qu&rsquo;il apportait au nombre limit\u00e9 de cas d&rsquo;utilisation en aval auxquels il r\u00e9pondait. Les projets en aval qui d\u00e9pendent du JVMCI doivent d\u00e9sormais l&rsquo;int\u00e9grer et le maintenir dans leurs propres arborescences de d\u00e9veloppement, ou rester sur des versions ant\u00e9rieures du JDK.<\/em>\nGraalVM \u00e9tait le plus connu de ces projets ; le compilateur Graal ne cite plus JVMCI dans sa <a href=\"https:\/\/www.graalvm.org\/latest\/reference-manual\/java\/compiler\/\">documentation<\/a>, utiliser le compilateur Graal \u00e0 la place de C2 ne doit plus \u00eatre support\u00e9.<\/p>\n<h2>JFR Events<\/h2>\n<p>Voici les nouveaux \u00e9v\u00e9nements Java Flight Recorder (JFR) de la JVM :<\/p>\n<ul><li><code>ShenandoahPromotionInformation<\/code> : aucune description.<\/li>\n<\/ul>\n<p>Vous pouvez retrouver tous les \u00e9v\u00e9nements JFR support\u00e9s dans cette version de Java sur la page <a href=\"https:\/\/sap.github.io\/jfrevents\/27.html\">JFR Events<\/a>.<\/p>\n<h2>Conclusion<\/h2>\n<p>Java 27 est une petite release sans gros changements ni nouvelles fonctionnalit\u00e9s. La bonne nouvelle, c&rsquo;est que son successeur, Java 28, va tr\u00e8s probablement contenir les premi\u00e8res phases du projet Valhalla, car la <a href=\"https:\/\/openjdk.org\/jeps\/401\">JEP 401 &#8211; Value Objects<\/a> a d\u00e9j\u00e0 un PR ouvert (<a href=\"https:\/\/github.com\/openjdk\/jdk\/pull\/31122\">#31122<\/a>) !<\/p>\n<p>Pour retrouver tous les changements de Java 27, voir les [release notes](<a href=\"https:\/\/jdk.java.net\/27\/release-notes\">https:\/\/jdk.java.net\/27\/release-notes<\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>Maintenant que Java 27 est feature complete (Rampdown Phase One au jour d\u2019\u00e9criture de l\u2019article), c\u2019est le moment de faire le tour des fonctionnalit\u00e9s qu\u2019apporte cette nouvelle version pour nous, les d\u00e9veloppeurs. Cet article fait partie d\u2019une s\u00e9rie d\u2019articles sur les nouveaut\u00e9s des derni\u00e8res versions de Java, pour ceux qui voudraient les lire, en voici les liens : Java 26, Java 25, Java 24, Java 23, Java 22, Java 21, Java 20, Java 19, Java 18, Java 17, Java 16,&#8230;<p class=\"read-more\"><a class=\"btn btn-default\" href=\"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/informatique\/java-27-quoi-de-neuf\/\">Lire la suite<span class=\"screen-reader-text\"> Lire la suite<\/span><\/a><\/p><\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":4,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"federated","footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[9],"tags":[],"class_list":["post-2165","post","type-post","status-publish","format-standard","hentry","category-informatique"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.8 - aioseo.com -->\n\t<meta name=\"description\" content=\"Maintenant que Java 27 est feature complete (Rampdown Phase One au jour d\u2019\u00e9criture de l\u2019article), c\u2019est le moment de faire le tour des fonctionnalit\u00e9s qu\u2019apporte cette nouvelle version pour nous, les d\u00e9veloppeurs. Cet article fait partie d\u2019une s\u00e9rie d\u2019articles sur les nouveaut\u00e9s des derni\u00e8res versions de Java, pour ceux qui voudraient les lire, en voici\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"admin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/informatique\/java-27-quoi-de-neuf\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.8\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Loic&#039;s Blog | Blog traitant du d\u00e9velopement informatique et de quelques autres sujets (voyages, \u00e9cologie, ...).\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Java 27 : Quoi de neuf ? | Loic&#039;s Blog\" \/>\n\t\t<meta property=\"og:description\" content=\"Maintenant que Java 27 est feature complete (Rampdown Phase One au jour d\u2019\u00e9criture de l\u2019article), c\u2019est le moment de faire le tour des fonctionnalit\u00e9s qu\u2019apporte cette nouvelle version pour nous, les d\u00e9veloppeurs. Cet article fait partie d\u2019une s\u00e9rie d\u2019articles sur les nouveaut\u00e9s des derni\u00e8res versions de Java, pour ceux qui voudraient les lire, en voici\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/informatique\/java-27-quoi-de-neuf\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-07-10T09:56:21+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-07-10T10:03:57+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Java 27 : Quoi de neuf ? | Loic&#039;s Blog\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Maintenant que Java 27 est feature complete (Rampdown Phase One au jour d\u2019\u00e9criture de l\u2019article), c\u2019est le moment de faire le tour des fonctionnalit\u00e9s qu\u2019apporte cette nouvelle version pour nous, les d\u00e9veloppeurs. Cet article fait partie d\u2019une s\u00e9rie d\u2019articles sur les nouveaut\u00e9s des derni\u00e8res versions de Java, pour ceux qui voudraient les lire, en voici\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/fr\\\/informatique\\\/java-27-quoi-de-neuf\\\/#article\",\"name\":\"Java 27 : Quoi de neuf ? | Loic's Blog\",\"headline\":\"Java 27 : Quoi de neuf ?\",\"author\":{\"@id\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/fr\\\/author\\\/admin\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/fr\\\/#organization\"},\"datePublished\":\"2026-07-10T11:56:21+02:00\",\"dateModified\":\"2026-07-10T12:03:57+02:00\",\"inLanguage\":\"fr-FR\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/fr\\\/informatique\\\/java-27-quoi-de-neuf\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/fr\\\/informatique\\\/java-27-quoi-de-neuf\\\/#webpage\"},\"articleSection\":\"informatique\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/fr\\\/informatique\\\/java-27-quoi-de-neuf\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/fr#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/fr\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/fr\\\/category\\\/informatique\\\/#listItem\",\"name\":\"informatique\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/fr\\\/category\\\/informatique\\\/#listItem\",\"position\":2,\"name\":\"informatique\",\"item\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/fr\\\/category\\\/informatique\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/fr\\\/informatique\\\/java-27-quoi-de-neuf\\\/#listItem\",\"name\":\"Java 27 : Quoi de neuf ?\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/fr#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/fr\\\/informatique\\\/java-27-quoi-de-neuf\\\/#listItem\",\"position\":3,\"name\":\"Java 27 : Quoi de neuf ?\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/fr\\\/category\\\/informatique\\\/#listItem\",\"name\":\"informatique\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/fr\\\/#organization\",\"name\":\"Loic's Blog\",\"description\":\"Blog traitant du d\\u00e9velopement informatique et de quelques autres sujets (voyages, \\u00e9cologie, ...).\",\"url\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/fr\\\/\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/fr\\\/author\\\/admin\\\/#author\",\"url\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/fr\\\/author\\\/admin\\\/\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/fr\\\/informatique\\\/java-27-quoi-de-neuf\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2b39eb909797d1241a4191e41489c1fbe0b3d68daf31e77779b61ce2f4422b52?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"admin\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/fr\\\/informatique\\\/java-27-quoi-de-neuf\\\/#webpage\",\"url\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/fr\\\/informatique\\\/java-27-quoi-de-neuf\\\/\",\"name\":\"Java 27 : Quoi de neuf ? | Loic's Blog\",\"description\":\"Maintenant que Java 27 est feature complete (Rampdown Phase One au jour d\\u2019\\u00e9criture de l\\u2019article), c\\u2019est le moment de faire le tour des fonctionnalit\\u00e9s qu\\u2019apporte cette nouvelle version pour nous, les d\\u00e9veloppeurs. Cet article fait partie d\\u2019une s\\u00e9rie d\\u2019articles sur les nouveaut\\u00e9s des derni\\u00e8res versions de Java, pour ceux qui voudraient les lire, en voici\",\"inLanguage\":\"fr-FR\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/fr\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/fr\\\/informatique\\\/java-27-quoi-de-neuf\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/fr\\\/author\\\/admin\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/fr\\\/author\\\/admin\\\/#author\"},\"datePublished\":\"2026-07-10T11:56:21+02:00\",\"dateModified\":\"2026-07-10T12:03:57+02:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/fr\\\/#website\",\"url\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/fr\\\/\",\"name\":\"Loic's Blog\",\"description\":\"Blog traitant du d\\u00e9velopement informatique et de quelques autres sujets (voyages, \\u00e9cologie, ...).\",\"inLanguage\":\"fr-FR\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/fr\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Java 27 : Quoi de neuf ? | Loic's Blog","description":"Maintenant que Java 27 est feature complete (Rampdown Phase One au jour d\u2019\u00e9criture de l\u2019article), c\u2019est le moment de faire le tour des fonctionnalit\u00e9s qu\u2019apporte cette nouvelle version pour nous, les d\u00e9veloppeurs. Cet article fait partie d\u2019une s\u00e9rie d\u2019articles sur les nouveaut\u00e9s des derni\u00e8res versions de Java, pour ceux qui voudraient les lire, en voici","canonical_url":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/informatique\/java-27-quoi-de-neuf\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/informatique\/java-27-quoi-de-neuf\/#article","name":"Java 27 : Quoi de neuf ? | Loic's Blog","headline":"Java 27 : Quoi de neuf ?","author":{"@id":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/author\/admin\/#author"},"publisher":{"@id":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/#organization"},"datePublished":"2026-07-10T11:56:21+02:00","dateModified":"2026-07-10T12:03:57+02:00","inLanguage":"fr-FR","mainEntityOfPage":{"@id":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/informatique\/java-27-quoi-de-neuf\/#webpage"},"isPartOf":{"@id":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/informatique\/java-27-quoi-de-neuf\/#webpage"},"articleSection":"informatique"},{"@type":"BreadcrumbList","@id":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/informatique\/java-27-quoi-de-neuf\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/www.loicmathieu.fr\/wordpress\/fr#listItem","position":1,"name":"Home","item":"https:\/\/www.loicmathieu.fr\/wordpress\/fr","nextItem":{"@type":"ListItem","@id":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/category\/informatique\/#listItem","name":"informatique"}},{"@type":"ListItem","@id":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/category\/informatique\/#listItem","position":2,"name":"informatique","item":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/category\/informatique\/","nextItem":{"@type":"ListItem","@id":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/informatique\/java-27-quoi-de-neuf\/#listItem","name":"Java 27 : Quoi de neuf ?"},"previousItem":{"@type":"ListItem","@id":"https:\/\/www.loicmathieu.fr\/wordpress\/fr#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/informatique\/java-27-quoi-de-neuf\/#listItem","position":3,"name":"Java 27 : Quoi de neuf ?","previousItem":{"@type":"ListItem","@id":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/category\/informatique\/#listItem","name":"informatique"}}]},{"@type":"Organization","@id":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/#organization","name":"Loic's Blog","description":"Blog traitant du d\u00e9velopement informatique et de quelques autres sujets (voyages, \u00e9cologie, ...).","url":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/"},{"@type":"Person","@id":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/author\/admin\/#author","url":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/author\/admin\/","name":"admin","image":{"@type":"ImageObject","@id":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/informatique\/java-27-quoi-de-neuf\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/2b39eb909797d1241a4191e41489c1fbe0b3d68daf31e77779b61ce2f4422b52?s=96&d=mm&r=g","width":96,"height":96,"caption":"admin"}},{"@type":"WebPage","@id":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/informatique\/java-27-quoi-de-neuf\/#webpage","url":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/informatique\/java-27-quoi-de-neuf\/","name":"Java 27 : Quoi de neuf ? | Loic's Blog","description":"Maintenant que Java 27 est feature complete (Rampdown Phase One au jour d\u2019\u00e9criture de l\u2019article), c\u2019est le moment de faire le tour des fonctionnalit\u00e9s qu\u2019apporte cette nouvelle version pour nous, les d\u00e9veloppeurs. Cet article fait partie d\u2019une s\u00e9rie d\u2019articles sur les nouveaut\u00e9s des derni\u00e8res versions de Java, pour ceux qui voudraient les lire, en voici","inLanguage":"fr-FR","isPartOf":{"@id":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/#website"},"breadcrumb":{"@id":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/informatique\/java-27-quoi-de-neuf\/#breadcrumblist"},"author":{"@id":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/author\/admin\/#author"},"creator":{"@id":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/author\/admin\/#author"},"datePublished":"2026-07-10T11:56:21+02:00","dateModified":"2026-07-10T12:03:57+02:00"},{"@type":"WebSite","@id":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/#website","url":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/","name":"Loic's Blog","description":"Blog traitant du d\u00e9velopement informatique et de quelques autres sujets (voyages, \u00e9cologie, ...).","inLanguage":"fr-FR","publisher":{"@id":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/#organization"}}]},"og:locale":"fr_FR","og:site_name":"Loic's Blog | Blog traitant du d\u00e9velopement informatique et de quelques autres sujets (voyages, \u00e9cologie, ...).","og:type":"article","og:title":"Java 27 : Quoi de neuf ? | Loic's Blog","og:description":"Maintenant que Java 27 est feature complete (Rampdown Phase One au jour d\u2019\u00e9criture de l\u2019article), c\u2019est le moment de faire le tour des fonctionnalit\u00e9s qu\u2019apporte cette nouvelle version pour nous, les d\u00e9veloppeurs. Cet article fait partie d\u2019une s\u00e9rie d\u2019articles sur les nouveaut\u00e9s des derni\u00e8res versions de Java, pour ceux qui voudraient les lire, en voici","og:url":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/informatique\/java-27-quoi-de-neuf\/","article:published_time":"2026-07-10T09:56:21+00:00","article:modified_time":"2026-07-10T10:03:57+00:00","twitter:card":"summary","twitter:title":"Java 27 : Quoi de neuf ? | Loic's Blog","twitter:description":"Maintenant que Java 27 est feature complete (Rampdown Phase One au jour d\u2019\u00e9criture de l\u2019article), c\u2019est le moment de faire le tour des fonctionnalit\u00e9s qu\u2019apporte cette nouvelle version pour nous, les d\u00e9veloppeurs. Cet article fait partie d\u2019une s\u00e9rie d\u2019articles sur les nouveaut\u00e9s des derni\u00e8res versions de Java, pour ceux qui voudraient les lire, en voici"},"aioseo_meta_data":{"post_id":"2165","title":null,"description":null,"keywords":null,"keyphrases":{"focus":{"keyphrase":"","score":0,"analysis":{"keyphraseInTitle":{"score":0,"maxScore":9,"error":1}}},"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","location":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":{"faqs":[],"keyPoints":[],"schemas":[],"titles":[],"descriptions":[],"socialPosts":{"email":[],"linkedin":[],"twitter":[],"facebook":[],"instagram":[]}},"created":"2026-06-26 11:04:35","updated":"2026-07-10 14:56:43","seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.loicmathieu.fr\/wordpress\/fr\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/category\/informatique\/\" title=\"informatique\">informatique<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tJava 27 : Quoi de neuf ?\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/www.loicmathieu.fr\/wordpress\/fr"},{"label":"informatique","link":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/category\/informatique\/"},{"label":"Java 27 : Quoi de neuf ?","link":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/informatique\/java-27-quoi-de-neuf\/"}],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"jetpack-related-posts":[{"id":829,"url":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/informatique\/java-11-quoi-de-neuf\/","url_meta":{"origin":2165,"position":0},"title":"Java 11  : quoi de neuf ?","author":"admin","date":"lundi  1 octobre 2018","format":false,"excerpt":"Maintenant que Java 11 est sorti, c'est le moment de faire le tour des fonctionnalit\u00e9s qu'apporte cette version, \u00e0 nous, les d\u00e9veloppeurs. Cet article fait partie d\u2019une suite d\u2019article sur les nouveaut\u00e9s des derni\u00e8res version de Java, pour ceux qui voudraient les lires en voici les liens : Java 10,\u2026","rel":"","context":"Dans &quot;informatique&quot;","block_context":{"text":"informatique","link":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/category\/informatique\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":712,"url":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/informatique\/demarrage-jvm-8-vs-9\/","url_meta":{"origin":2165,"position":1},"title":"D\u00e9marrage JVM 8 vs 9","author":"admin","date":"jeudi 31 ao\u00fbt 2017","format":false,"excerpt":"Introduction En parcourant la mailing liste d'open JDK (core-lib-dev) j'ai vu plusieurs threads de mail \u00e0 propos d'optimisation de temps de d\u00e9marrage et d'occupation m\u00e9moire d'une JVM \"minimale\". Ce travail a \u00e9t\u00e9 r\u00e9alis\u00e9 en grande partie par Claes Redestad (Oracle) lors du d\u00e9veloppement de Java 9. J'ai donc d\u00e9cid\u00e9 de\u2026","rel":"","context":"Dans &quot;informatique&quot;","block_context":{"text":"informatique","link":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/category\/informatique\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":722,"url":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/informatique\/java-10-quoi-de-neuf\/","url_meta":{"origin":2165,"position":2},"title":"Java 10 : quoi de neuf ?","author":"admin","date":"lundi 26 mars 2018","format":false,"excerpt":"Maintenant que Java 10 est sorti, il est temps de se pencher sur les nouveaut\u00e9s de cette version. Comme pour mon pr\u00e9c\u00e9dent article sur java 9, je vais me pencher principalement sur les changements qui impacterons les d\u00e9veloppeurs utilisant Java en laissant de c\u00f4t\u00e9 les changements internes\/anecdotique\/sur des API peu\u2026","rel":"","context":"Dans &quot;informatique&quot;","block_context":{"text":"informatique","link":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/category\/informatique\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":856,"url":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/informatique\/java-next\/","url_meta":{"origin":2165,"position":3},"title":"Java.Next","author":"admin","date":"mercredi 31 octobre 2018","format":false,"excerpt":"Ma premi\u00e8re contribution au blog de Zenika est un article qui parle du futur (ou du pr\u00e9sent) de Java et des changements pour les d\u00e9veloppeurs dans les versions 9, 10 et 11. La gouvernance de Java y est aussi abord\u00e9. Cet article reprend et r\u00e9sume les articles que j'ai pr\u00e9c\u00e9demment\u2026","rel":"","context":"Dans &quot;informatique&quot;","block_context":{"text":"informatique","link":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/category\/informatique\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1375,"url":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/informatique\/java-18-quoi-de-neuf\/","url_meta":{"origin":2165,"position":4},"title":"Java 18 : quoi de neuf ?","author":"admin","date":"mardi  4 janvier 2022","format":false,"excerpt":"Maintenant que Java 18 est features complete (Rampdown Phase One au jour d\u2019\u00e9criture de l\u2019article), c\u2019est le moment de faire le tour des fonctionnalit\u00e9s qu\u2019apporte cette nouvelle version, \u00e0 nous, les d\u00e9veloppeurs. Cet article fait partie d\u2019une suite d\u2019article sur les nouveaut\u00e9s des derni\u00e8res versions de Java, pour ceux qui\u2026","rel":"","context":"Dans &quot;informatique&quot;","block_context":{"text":"informatique","link":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/category\/informatique\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1839,"url":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/informatique\/java-vers-une-integrite-par-defaut-de-la-jvm\/","url_meta":{"origin":2165,"position":5},"title":"Java : vers une int\u00e9grit\u00e9 par d\u00e9faut de la JVM","author":"admin","date":"mardi  4 f\u00e9vrier 2025","format":false,"excerpt":"Cet article est paru pour la premi\u00e8re fois dans le magazine Programmez! Hors s\u00e9rie #16. La Machine Virtuelle Java (JVM) est un environnement d'ex\u00e9cution qui permet \u00e0 des programmes \u00e9crits en Java (ou dans d'autres langages compil\u00e9s en bytecode Java) de s'ex\u00e9cuter sur diff\u00e9rents syst\u00e8mes d'exploitation et architectures mat\u00e9rielles. D\u00e8s\u2026","rel":"","context":"Dans &quot;informatique&quot;","block_context":{"text":"informatique","link":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/category\/informatique\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/wp-json\/wp\/v2\/posts\/2165","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/wp-json\/wp\/v2\/comments?post=2165"}],"version-history":[{"count":18,"href":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/wp-json\/wp\/v2\/posts\/2165\/revisions"}],"predecessor-version":[{"id":2193,"href":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/wp-json\/wp\/v2\/posts\/2165\/revisions\/2193"}],"wp:attachment":[{"href":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/wp-json\/wp\/v2\/media?parent=2165"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/wp-json\/wp\/v2\/categories?post=2165"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/wp-json\/wp\/v2\/tags?post=2165"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}