{"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\/informatique\/java-27-whats-new\/","title":{"rendered":"Java 27: What&#8217;s new?"},"content":{"rendered":"<p>Now that Java 27 is features complete (Rampdown Phase One at the day of writing), it\u2019s time to walk through all the functionalities that bring to us, developers, this new version.<\/p>\n<p>This article is part of a series on <a href=\"https:\/\/www.loicmathieu.fr\/wordpress\/tag\/whatsnew\/\">what\u2019s new on the last versions of Java<\/a>, for those who wants to read the others, here are the links: <a href=\"https:\/\/www.loicmathieu.fr\/wordpress\/informatique\/java-26-whats-new\/\">Java 26<\/a>, <a href=\"https:\/\/www.loicmathieu.fr\/wordpress\/informatique\/java-25-whats-new\/\">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>,\u00a0<a href=\"http:\/\/www.loicmathieu.fr\/wordpress\/informatique\/java-10-quoi-de-neuf\/\">Java 10<\/a>,\u00a0and\u00a0<a href=\"http:\/\/www.loicmathieu.fr\/wordpress\/informatique\/les-nouveautes-de-java-9-pour-les-developeurs\/\">Java 9<\/a>.<\/p>\n<p>After Java 26 and its 10 JEPs, Java 27 arrives with a small number of JEPs, 9, with very few new features.<\/p>\n<h2>JEP 523: Make G1 the Default Garbage Collector in All Environments<\/h2>\n<p><strong>G1<\/strong> was set as the default Garbage Collector in Java 9. At that time, tests showed that for environments with one CPU (or fewer) and less than 1792 MB of heap, the <strong>Serial<\/strong> Garbage Collector was more efficient. The JVM therefore used <strong>Serial<\/strong> by default in these cases.<\/p>\n<p>Since then, <strong>G1<\/strong> has been improved, and tests have shown that <strong>G1<\/strong> is now equivalent to <strong>Serial<\/strong> for all heap sizes. With improvements to reduce synchronization (<a href=\"https:\/\/openjdk.org\/jeps\/522\">JEP 522<\/a>), <strong>G1<\/strong> now performs as well as <strong>Serial<\/strong>, even with a reduced number of CPUs. Finally, <strong>G1<\/strong> has also seen a reduction in its native memory consumption, reaching levels comparable to those of <strong>Serial<\/strong>.<\/p>\n<p>Logically, since <strong>G1<\/strong> is equal to or better than <strong>Serial<\/strong> on all criteria, even in environments with few CPUs and\/or little RAM, it is now the default in all environments.<\/p>\n<p>More information in <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>Strengthens the security of Java applications requiring secure network communications by implementing <a href=\"https:\/\/datatracker.ietf.org\/doc\/draft-ietf-tls-hybrid-design\">hybrid key exchange algorithms<\/a> for TLS 1.3. These algorithms help protect against future quantum computing attacks by combining a quantum-resistant algorithm with a traditional one.<\/p>\n<p>A hybrid key exchange algorithm combines a quantum-resistant algorithm with a traditional one and remains secure as long as one of the two algorithms is not broken. This approach helps protect against quantum attacks while acknowledging that these new algorithms have not yet benefited from the years of testing and analysis already conducted on traditional algorithms.<\/p>\n<p>The JDK&#8217;s implementation of TLS 1.3 will support three new post-quantum hybrid key exchange schemes that combine the <em>Module-Lattice-Based Key-Encapsulation Mechanism<\/em> (ML-KEM &#8211; added via <a href=\"https:\/\/openjdk.org\/jeps\/496\">JEP 496<\/a>) with traditional <em>Ephemeral Elliptic Curve Diffie-Hellman<\/em> (ECDHE) algorithms:<\/p>\n<ul><li><strong>X25519MLKEM768<\/strong>: hybrid scheme combining ECDHE with X25519 and ML-KEM-768,<\/li>\n<li><strong>SecP256r1MLKEM768<\/strong>: hybrid scheme combining ECDHE using the secp256r1 curve with ML-KEM-768,<\/li>\n<li><strong>SecP384r1MLKEM1024<\/strong>: hybrid scheme combining ECDHE using the secp384r1 curve with ML-KEM-1024.<\/li>\n<\/ul>\n<p>More information in <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> allows the JVM to store object headers in 64 bits instead of 128: 22 bits for the class pointer, 31 bits for the hash code, 4 bits reserved for Valhalla, and the remaining bits as before for GC age and JVM flags.<\/p>\n<p><strong>Compact object headers<\/strong> were introduced as an alternative object header structure in preview in Java 24 via <a href=\"https:\/\/openjdk.org\/jeps\/450\">JEP 450<\/a>, and then exited preview in Java 25.<\/p>\n<p>Since then, <strong>compact object headers<\/strong> have proven their stability and performance.<\/p>\n<p>They have been tested at Oracle using the JDK&#8217;s full test suite. They have also been tested at Amazon and SAP, which have enabled them by default.<\/p>\n<p>Various experiments show that enabling <strong>compact object headers<\/strong> improves performance:<\/p>\n<ul>\n<li>The SPECjbb2015 benchmark uses 22% less heap space and 8% less CPU time.<\/li>\n<li>The number of garbage collections performed by SPECjbb2015 is reduced by 15%, both with the G1 collector and the parallel collector.<\/li>\n<li>A highly parallel JSON parser benchmark runs 10% faster.<\/li>\n<\/ul>\n<p>In Java 27, <strong>compact object headers<\/strong> are enabled by default. The old layout is expected to be deprecated in a future release.<\/p>\n<p>More information in <a href=\"https:\/\/openjdk.org\/jeps\/534\">JEP 534<\/a>.<\/p>\n<h2>JEP 536: JFR In-Process Data Redaction<\/h2>\n<p>JFR recording files contain command-line arguments as well as environment variable values and system properties, which show how the process was launched and configured. These events can therefore contain sensitive data, such as secrets in command-line arguments, environment variables, and system properties. Currently, this data appears as-is in the recording files, which poses a risk of sensitive information leakage when recordings are shared.<\/p>\n<p>JFR will now mask many types of sensitive information by default, without any additional configuration.<\/p>\n<p>You can explicitly select the information that JFR should mask using new sub-options of the existing command-line option <code>-XX:FlightRecorderOptions<\/code>. Each sub-option specifies one or more filters that select the command-line arguments, environment variables, and system properties to mask.<\/p>\n<p>The <code>redact-argument<\/code> sub-option specifies a list of filters for command-line arguments, and the <code>redact-key<\/code> sub-option specifies a list of filters for key-value pairs in the form of environment variables and system properties.<\/p>\n<p>Filters use <em>glob patterns<\/em>, where <code>*<\/code> and <code>?<\/code> are wildcards. If a filter matches an argument or a key, the argument or key value is recorded in the event as <code>[REDACTED]<\/code>. Multiple filters are separated by semicolons and are evaluated in the order specified. The different sub-options of <code>-XX:FlightRecorderOptions<\/code> are separated by commas.<\/p>\n<p>For example, to mask any environment variable or system property named &#8220;confidential&#8221; or &#8220;CONFIDENTIAL&#8221;, as well as any command-line argument resembling a URL containing a username and password (i.e., <a>username:password@host<\/code>code&gt;username:password@host&lt;\/code<\/a>), use:<\/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>To verify that sensitive information has been properly masked, use the <code>jfr print<\/code> command:<\/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>Features coming out of preview<\/h2>\n<p>The following features comes out of preview (or incubator module) are now standard features:<\/p>\n<p><strong>None!<\/strong><\/p>\n<p>This is rare enough to highlight. Some features that have been in preview for a long time are blocked waiting for the Valhalla project.<\/p>\n<h2>Features that remain in preview<\/h2>\n<p>The following features remain in preview (or in the incubator module):<\/p>\n<ul><li><a href=\"https:\/\/openjdk.org\/jeps\/531\">JEP 531<\/a> &#8211; <strong>Lazy Constants<\/strong>: third preview, a new API for creating constants initialized on demand. Two changes: removal of low-level methods <code>isInitialized<\/code> and <code>orElse<\/code>, addition of a factory method <code>Set.ofLazy(...)<\/code>.<\/li>\n<li><a href=\"https:\/\/openjdk.org\/jeps\/532\">JEP 532<\/a> &#8211; <strong>Primitive Types in Patterns, instanceof, and switch<\/strong>: fifth preview, adds support for primitive types in <code>instanceof<\/code> and <code>switch<\/code>, and enhances pattern matching to support primitive type patterns: in <code>instanceof<\/code>, in <code>switch<\/code> cases, and in record deconstruction. No changes.<\/li>\n<li><a href=\"https:\/\/openjdk.org\/jeps\/533\">JEP 533<\/a> &#8211; <strong>Structured Concurrency<\/strong>: seventh preview, a new API to simplify writing multithreaded code by allowing multiple concurrent tasks to be treated as a single unit of work. Several changes to the <code>Joiner<\/code> interface: the <code>join()<\/code> method accepts a third argument for the exception that a <code>StructuredTaskScope<\/code> can throw; <code>awaitAll()<\/code> has been removed in favor of <code>allSuccessfulOrThrow()<\/code>, <code>anySuccessfulOrThrow()<\/code>, and <code>awaitAllSuccessfulOrThrow()<\/code>, which create joiners that throw an <code>ExecutionException<\/code> in case of an exception; <code>onTimeout()<\/code> has been replaced by <code>timeout()<\/code>.<\/li>\n<li><a href=\"https:\/\/openjdk.org\/jeps\/537\">JEP 537<\/a> &#8211; <strong>Vector API<\/strong>: twelfth incubator, an API to express vector computations that compile at runtime into vector instructions for supported CPU architectures. No changes. It has been stated in the JEP that the Vector API will remain in incubation until Valhalla project features are available in preview. This was expected, as the Vector API will then be able to take advantage of the performance and memory representation improvements that the Valhalla project should bring.<\/li>\n<li><a href=\"https:\/\/openjdk.org\/jeps\/538\">JEP 538<\/a> &#8211; <strong>PEM Encodings of Cryptographic Objects<\/strong>: third preview, a new API that adds support for the <em>Privacy-Enhanced Mail<\/em> (PEM) format to Java. Added constructors that take BASE64-encoded byte arrays as input to the <code>PEM<\/code> class; <code>DEREncodable<\/code> has been renamed to <code>BinaryEncodable<\/code>; added the <code>EncryptedPrivateKeyInfo.getKeyPair()<\/code> method and added a <code>CryptoException<\/code> exception used to signal cryptographic exceptions.<\/li>\n<\/ul>\n<p>For details on these, you can refer to my previous articles.<\/p>\n<h2>Miscellaneous<\/h2>\n<p>Various additions to the JDK:<\/p>\n<ul><li><code>Math.acosh(double)<\/code> and <code>StrictMath.acosh(double)<\/code>: returns the inverse hyperbolic cosine of a <code>double<\/code> value.<\/li>\n<li><code>Math.asinh(double)<\/code> and <code>StrictMath.asinh(double)<\/code>: returns the inverse hyperbolic sine of a <code>double<\/code> value.<\/li>\n<li><code>Math.atanh(double)<\/code> and <code>StrictMath.atanh(double)<\/code>: returns the inverse hyperbolic tangent of a <code>double<\/code> value.<\/li>\n<li><code>String.encodedLength(Charset)<\/code>: returns the length, in bytes, of this string encoded with the specified charset.<\/li>\n<li><code>BigDecimal.rootn(int, MathContext)<\/code>: returns an approximation of the nth root of this value, rounded according to the context settings.<\/li>\n<li><code>DateTimeFormatter<\/code> now supports short timezone offsets (<code>+01<\/code> instead of <code>+01:00<\/code>), see <a href=\"https:\/\/bugs.openjdk.org\/browse\/JDK-8210336\">JDK-8210336<\/a>.<\/li>\n<\/ul>\n<p>All new APIs in JDK 27 can be found in <a href=\"https:\/\/javaalmanac.io\/jdk\/27\/apidiff\/26\/\">The Java Version Almanac &#8211; New APIs in Java 27<\/a>.<\/p>\n<h2>Internal changes, performance, and security<\/h2>\n<p>Like all new versions of Java, OpenJDK 27 contains a number of performance optimizations and security enhancements.<\/p>\n<p>On the performance side, I noted two interesting improvements:<\/p>\n<ul>\n<li><code>HashMap.putAll()<\/code> now has a fast-path when the <code>Map<\/code> is a <code>HashMap<\/code>, which directly calls <code>putHashMapEntries()<\/code>, resulting in a 66-86% improvement (<a href=\"https:\/\/github.com\/openjdk\/jdk\/pull\/28243\">PR #28243<\/a>);<\/li>\n<li>a new <em>intrinsic<\/em> for the AVX2 architecture has been added for binary search, resulting in a 1.5x to 2.35x improvement for arrays above a certain threshold (<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>On the security side, we can mention:<\/p>\n<ul>\n<li>the addition of TLS certificate compression support (<a href=\"https:\/\/bugs.openjdk.org\/browse\/JDK-8372526\">JDK-8372526<\/a>);<\/li>\n<li>the addition of WISeKey certificates to the JVM truststore (<a href=\"https:\/\/bugs.openjdk.org\/browse\/JDK-8372351\">JDK-8372351<\/a>);<\/li>\n<li>a new command <code>jcmd VM.security_properties<\/code> to list enabled security properties (<a href=\"https:\/\/bugs.openjdk.org\/browse\/JDK-8364182\">JDK-8364182<\/a>).<\/li>\n<\/ul>\n<p><code>jcmd<\/code>, the JVM&#8217;s all-in-one management command, now supports bash completion (<a href=\"https:\/\/bugs.openjdk.org\/browse\/JDK-8357439\">JDK-8357439<\/a>).<\/p>\n<p>The experimental JVM Compiler Interface (JVMCI) feature has been removed (<a href=\"https:\/\/bugs.openjdk.org\/browse\/JDK-8382582\">JDK-8382582<\/a>). Quoting the release notes:<em>The JVMCI provided an experimental internal Java API for writing a JIT compiler in Java that could be called by Hotspot. After more than a decade of experimentation, the costs of its maintenance and testing within the JDK have outweighed the benefits it provided to the limited number of downstream use cases it addressed. Downstream projects that depend on JVMCI must now integrate and maintain it in their own development trees, or remain on earlier JDK versions.<\/em>\nGraalVM was the most well-known of these projects; the Graal compiler no longer mentions JVMCI in its <a href=\"https:\/\/www.graalvm.org\/latest\/reference-manual\/java\/compiler\/\">documentation<\/a>, using the Graal compiler instead of C2 should not be supported anymore.<\/p>\n<h2>JFR Events<\/h2>\n<p>Here are the new Java Flight Recorder (JFR) events in the JVM:<\/p>\n<ul><li><code>ShenandoahPromotionInformation<\/code>: no description.<\/li>\n<\/ul>\n<p>You can find all JFR events supported in this version of Java on the <a href=\"https:\/\/sap.github.io\/jfrevents\/27.html\">JFR Events<\/a> page.<\/p>\n<h2>Conclusion<\/h2>\n<p>Java 27 is a small release with no major changes or new features. The good news is that its successor, Java 28, will very likely include the first phases of the Valhalla project, as <a href=\"https:\/\/openjdk.org\/jeps\/401\">JEP 401 &#8211; Value Objects<\/a> already has an open PR (<a href=\"https:\/\/github.com\/openjdk\/jdk\/pull\/31122\">#31122<\/a>)!<\/p>\n<p>To see all the changes in Java 27, check the <a href=\"https:\/\/jdk.java.net\/27\/release-notes\">release notes<\/a>.<\/p>","protected":false},"excerpt":{"rendered":"<p>Now that Java 27 is features complete (Rampdown Phase One at the day of writing), it\u2019s time to walk through all the functionalities that bring to us, developers, this new version. This article is part of a series on what\u2019s new on the last versions of Java, for those who wants to read the others, here are the links: Java 26, Java 25, Java 24, Java 23, Java 22, Java 21, Java 20, Java 19, Java 18, Java 17, Java&#8230;<p class=\"read-more\"><a class=\"btn btn-default\" href=\"https:\/\/www.loicmathieu.fr\/wordpress\/informatique\/java-27-whats-new\/\"> Read More<span class=\"screen-reader-text\">  Read More<\/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=\"Now that Java 27 is features complete (Rampdown Phase One at the day of writing), it\u2019s time to walk through all the functionalities that bring to us, developers, this new version. This article is part of a series on what\u2019s new on the last versions of Java, for those who wants to read the others,\" \/>\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\/informatique\/java-27-whats-new\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.8\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Loic&#039;s Blog | Blog about IT developement, and some more stuff (travel, ecology, ...)\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Java 27: What\u2019s new? | Loic&#039;s Blog\" \/>\n\t\t<meta property=\"og:description\" content=\"Now that Java 27 is features complete (Rampdown Phase One at the day of writing), it\u2019s time to walk through all the functionalities that bring to us, developers, this new version. This article is part of a series on what\u2019s new on the last versions of Java, for those who wants to read the others,\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/www.loicmathieu.fr\/wordpress\/informatique\/java-27-whats-new\/\" \/>\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: What\u2019s new? | Loic&#039;s Blog\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Now that Java 27 is features complete (Rampdown Phase One at the day of writing), it\u2019s time to walk through all the functionalities that bring to us, developers, this new version. This article is part of a series on what\u2019s new on the last versions of Java, for those who wants to read the others,\" \/>\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\\\/informatique\\\/java-27-whats-new\\\/#article\",\"name\":\"Java 27: What\\u2019s new? | Loic's Blog\",\"headline\":\"Java 27: What&#8217;s new?\",\"author\":{\"@id\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/author\\\/admin\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/#organization\"},\"datePublished\":\"2026-07-10T11:56:21+02:00\",\"dateModified\":\"2026-07-10T12:03:57+02:00\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/informatique\\\/java-27-whats-new\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/informatique\\\/java-27-whats-new\\\/#webpage\"},\"articleSection\":\"informatique\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/informatique\\\/java-27-whats-new\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/category\\\/informatique\\\/#listItem\",\"name\":\"informatique\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/category\\\/informatique\\\/#listItem\",\"position\":2,\"name\":\"informatique\",\"item\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/category\\\/informatique\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/informatique\\\/java-27-whats-new\\\/#listItem\",\"name\":\"Java 27: What&#8217;s new?\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/informatique\\\/java-27-whats-new\\\/#listItem\",\"position\":3,\"name\":\"Java 27: What&#8217;s new?\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/category\\\/informatique\\\/#listItem\",\"name\":\"informatique\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/#organization\",\"name\":\"Loic's Blog\",\"description\":\"Blog about IT developement, and some more stuff (travel, ecology, ...)\",\"url\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/author\\\/admin\\\/#author\",\"url\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/author\\\/admin\\\/\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/informatique\\\/java-27-whats-new\\\/#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\\\/informatique\\\/java-27-whats-new\\\/#webpage\",\"url\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/informatique\\\/java-27-whats-new\\\/\",\"name\":\"Java 27: What\\u2019s new? | Loic's Blog\",\"description\":\"Now that Java 27 is features complete (Rampdown Phase One at the day of writing), it\\u2019s time to walk through all the functionalities that bring to us, developers, this new version. This article is part of a series on what\\u2019s new on the last versions of Java, for those who wants to read the others,\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/informatique\\\/java-27-whats-new\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/author\\\/admin\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/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\\\/#website\",\"url\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/\",\"name\":\"Loic's Blog\",\"description\":\"Blog about IT developement, and some more stuff (travel, ecology, ...)\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.loicmathieu.fr\\\/wordpress\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Java 27: What\u2019s new? | Loic's Blog","description":"Now that Java 27 is features complete (Rampdown Phase One at the day of writing), it\u2019s time to walk through all the functionalities that bring to us, developers, this new version. This article is part of a series on what\u2019s new on the last versions of Java, for those who wants to read the others,","canonical_url":"https:\/\/www.loicmathieu.fr\/wordpress\/informatique\/java-27-whats-new\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.loicmathieu.fr\/wordpress\/informatique\/java-27-whats-new\/#article","name":"Java 27: What\u2019s new? | Loic's Blog","headline":"Java 27: What&#8217;s new?","author":{"@id":"https:\/\/www.loicmathieu.fr\/wordpress\/author\/admin\/#author"},"publisher":{"@id":"https:\/\/www.loicmathieu.fr\/wordpress\/#organization"},"datePublished":"2026-07-10T11:56:21+02:00","dateModified":"2026-07-10T12:03:57+02:00","inLanguage":"en-US","mainEntityOfPage":{"@id":"https:\/\/www.loicmathieu.fr\/wordpress\/informatique\/java-27-whats-new\/#webpage"},"isPartOf":{"@id":"https:\/\/www.loicmathieu.fr\/wordpress\/informatique\/java-27-whats-new\/#webpage"},"articleSection":"informatique"},{"@type":"BreadcrumbList","@id":"https:\/\/www.loicmathieu.fr\/wordpress\/informatique\/java-27-whats-new\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/www.loicmathieu.fr\/wordpress#listItem","position":1,"name":"Home","item":"https:\/\/www.loicmathieu.fr\/wordpress","nextItem":{"@type":"ListItem","@id":"https:\/\/www.loicmathieu.fr\/wordpress\/category\/informatique\/#listItem","name":"informatique"}},{"@type":"ListItem","@id":"https:\/\/www.loicmathieu.fr\/wordpress\/category\/informatique\/#listItem","position":2,"name":"informatique","item":"https:\/\/www.loicmathieu.fr\/wordpress\/category\/informatique\/","nextItem":{"@type":"ListItem","@id":"https:\/\/www.loicmathieu.fr\/wordpress\/informatique\/java-27-whats-new\/#listItem","name":"Java 27: What&#8217;s new?"},"previousItem":{"@type":"ListItem","@id":"https:\/\/www.loicmathieu.fr\/wordpress#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/www.loicmathieu.fr\/wordpress\/informatique\/java-27-whats-new\/#listItem","position":3,"name":"Java 27: What&#8217;s new?","previousItem":{"@type":"ListItem","@id":"https:\/\/www.loicmathieu.fr\/wordpress\/category\/informatique\/#listItem","name":"informatique"}}]},{"@type":"Organization","@id":"https:\/\/www.loicmathieu.fr\/wordpress\/#organization","name":"Loic's Blog","description":"Blog about IT developement, and some more stuff (travel, ecology, ...)","url":"https:\/\/www.loicmathieu.fr\/wordpress\/"},{"@type":"Person","@id":"https:\/\/www.loicmathieu.fr\/wordpress\/author\/admin\/#author","url":"https:\/\/www.loicmathieu.fr\/wordpress\/author\/admin\/","name":"admin","image":{"@type":"ImageObject","@id":"https:\/\/www.loicmathieu.fr\/wordpress\/informatique\/java-27-whats-new\/#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\/informatique\/java-27-whats-new\/#webpage","url":"https:\/\/www.loicmathieu.fr\/wordpress\/informatique\/java-27-whats-new\/","name":"Java 27: What\u2019s new? | Loic's Blog","description":"Now that Java 27 is features complete (Rampdown Phase One at the day of writing), it\u2019s time to walk through all the functionalities that bring to us, developers, this new version. This article is part of a series on what\u2019s new on the last versions of Java, for those who wants to read the others,","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/www.loicmathieu.fr\/wordpress\/#website"},"breadcrumb":{"@id":"https:\/\/www.loicmathieu.fr\/wordpress\/informatique\/java-27-whats-new\/#breadcrumblist"},"author":{"@id":"https:\/\/www.loicmathieu.fr\/wordpress\/author\/admin\/#author"},"creator":{"@id":"https:\/\/www.loicmathieu.fr\/wordpress\/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\/#website","url":"https:\/\/www.loicmathieu.fr\/wordpress\/","name":"Loic's Blog","description":"Blog about IT developement, and some more stuff (travel, ecology, ...)","inLanguage":"en-US","publisher":{"@id":"https:\/\/www.loicmathieu.fr\/wordpress\/#organization"}}]},"og:locale":"en_US","og:site_name":"Loic's Blog | Blog about IT developement, and some more stuff (travel, ecology, ...)","og:type":"article","og:title":"Java 27: What\u2019s new? | Loic's Blog","og:description":"Now that Java 27 is features complete (Rampdown Phase One at the day of writing), it\u2019s time to walk through all the functionalities that bring to us, developers, this new version. This article is part of a series on what\u2019s new on the last versions of Java, for those who wants to read the others,","og:url":"https:\/\/www.loicmathieu.fr\/wordpress\/informatique\/java-27-whats-new\/","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: What\u2019s new? | Loic's Blog","twitter:description":"Now that Java 27 is features complete (Rampdown Phase One at the day of writing), it\u2019s time to walk through all the functionalities that bring to us, developers, this new version. This article is part of a series on what\u2019s new on the last versions of Java, for those who wants to read the others,"},"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\" 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\/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: What\u2019s new?\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/www.loicmathieu.fr\/wordpress"},{"label":"informatique","link":"https:\/\/www.loicmathieu.fr\/wordpress\/category\/informatique\/"},{"label":"Java 27: What&#8217;s new?","link":"https:\/\/www.loicmathieu.fr\/wordpress\/informatique\/java-27-whats-new\/"}],"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\/informatique\/java-11-quoi-de-neuf\/","url_meta":{"origin":2165,"position":0},"title":"Java 11  : what\u2019s new ?","author":"admin","date":"Monday October  1st, 2018","format":false,"excerpt":"Now that Java 11 is out, it is time to look at the new features that this version brings to us, developers. This article is part of a series on what\u2019s new on the last versions of Java, for those who wants to read the others, here are the links\u2026","rel":"","context":"In &quot;informatique&quot;","block_context":{"text":"informatique","link":"https:\/\/www.loicmathieu.fr\/wordpress\/category\/informatique\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":712,"url":"https:\/\/www.loicmathieu.fr\/wordpress\/informatique\/demarrage-jvm-8-vs-9\/","url_meta":{"origin":2165,"position":1},"title":"D\u00e9marrage JVM 8 vs 9","author":"admin","date":"Thursday August 31st, 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":"In &quot;informatique&quot;","block_context":{"text":"informatique","link":"https:\/\/www.loicmathieu.fr\/wordpress\/category\/informatique\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":722,"url":"https:\/\/www.loicmathieu.fr\/wordpress\/informatique\/java-10-quoi-de-neuf\/","url_meta":{"origin":2165,"position":2},"title":"Java 10 : what&#8217;s new ?","author":"admin","date":"Monday March 26th, 2018","format":false,"excerpt":"Now that java 10 is out, it's time to look at all the new functionalities of this version. Like my previous article on Java 9, I will focus on the changes that will impact developers that uses Java leaving aside the changes that are internal\/very small\/on rarely used API. The\u2026","rel":"","context":"In &quot;informatique&quot;","block_context":{"text":"informatique","link":"https:\/\/www.loicmathieu.fr\/wordpress\/category\/informatique\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":856,"url":"https:\/\/www.loicmathieu.fr\/wordpress\/informatique\/java-next\/","url_meta":{"origin":2165,"position":3},"title":"Java.Next","author":"admin","date":"Wednesday October 31st, 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 changement pour les d\u00e9veloppeurs des version 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\u00e9dement \u00e9crit\u2026","rel":"","context":"In &quot;informatique&quot;","block_context":{"text":"informatique","link":"https:\/\/www.loicmathieu.fr\/wordpress\/category\/informatique\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1375,"url":"https:\/\/www.loicmathieu.fr\/wordpress\/informatique\/java-18-quoi-de-neuf\/","url_meta":{"origin":2165,"position":4},"title":"Java 18 : what&#8217;s new ?","author":"admin","date":"Tuesday January  4th, 2022","format":false,"excerpt":"Now that Java 18 is features complete (Rampdown Phase One at the day of writing), it\u2019s time to walk throught all the functionalities that brings to us, developers, this new version. This article is part of a series on what\u2019s new on the last versions of Java, for those who\u2026","rel":"","context":"In &quot;informatique&quot;","block_context":{"text":"informatique","link":"https:\/\/www.loicmathieu.fr\/wordpress\/category\/informatique\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1839,"url":"https:\/\/www.loicmathieu.fr\/wordpress\/informatique\/java-vers-une-integrite-par-defaut-de-la-jvm\/","url_meta":{"origin":2165,"position":5},"title":"Java: towards JVM integrity by default","author":"admin","date":"Tuesday February  4th, 2025","format":false,"excerpt":"This article first appeared in Programmez! Hors s\u00e9rie #16 (in french only). The Java Virtual Machine (JVM) is an execution environment that enables programs written in Java (or other languages compiled into Java bytecode) to run on different operating systems and hardware architectures. From the begining, the JVM was designed\u2026","rel":"","context":"In &quot;informatique&quot;","block_context":{"text":"informatique","link":"https:\/\/www.loicmathieu.fr\/wordpress\/category\/informatique\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/www.loicmathieu.fr\/wordpress\/wp-json\/wp\/v2\/posts\/2165","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.loicmathieu.fr\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.loicmathieu.fr\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.loicmathieu.fr\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.loicmathieu.fr\/wordpress\/wp-json\/wp\/v2\/comments?post=2165"}],"version-history":[{"count":18,"href":"https:\/\/www.loicmathieu.fr\/wordpress\/wp-json\/wp\/v2\/posts\/2165\/revisions"}],"predecessor-version":[{"id":2193,"href":"https:\/\/www.loicmathieu.fr\/wordpress\/wp-json\/wp\/v2\/posts\/2165\/revisions\/2193"}],"wp:attachment":[{"href":"https:\/\/www.loicmathieu.fr\/wordpress\/wp-json\/wp\/v2\/media?parent=2165"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.loicmathieu.fr\/wordpress\/wp-json\/wp\/v2\/categories?post=2165"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.loicmathieu.fr\/wordpress\/wp-json\/wp\/v2\/tags?post=2165"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}