{"id":2073,"date":"2026-01-21T12:59:40","date_gmt":"2026-01-21T11:59:40","guid":{"rendered":"https:\/\/www.loicmathieu.fr\/wordpress\/fr\/?p=2073"},"modified":"2026-02-23T18:12:19","modified_gmt":"2026-02-23T17:12:19","slug":"java-26-whats-new","status":"publish","type":"post","link":"https:\/\/www.loicmathieu.fr\/wordpress\/informatique\/java-26-whats-new\/","title":{"rendered":"Java 26: what&#8217;s new?"},"content":{"rendered":"<p>Now that Java 26 is features complete (Rampdown Phase Two 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-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 25 and its 18 JEPs, Java 26 arrives with a small number of JEPs, 10, with very few new features.<\/p>\n<h2>JEP 500: Prepare to Make Final Mean Final<\/h2>\n<p>A final field is supposed to never be modified after its initialization.\nUnfortunately, deep reflection makes it possible to access a final field and then modify it using the <code>Field.setAccessible(true)<\/code> method.\nModifying a final field breaks the integrity of the JVM because it goes against the developer&#8217;s intention, with all the security risks that this can entail.<\/p>\n<p>In addition, certain JVM optimizations cannot be applied to final fields, such as <em>constant folding<\/em> by the Just In Time compiler (JIT), an optimization that evaluates a constant expression only once rather than each time it is used.<\/p>\n<p>Records already prohibit the modification of final fields.<\/p>\n<p>JEP 500 will issue a warning in the JVM logs the first time a final field is modified via deep reflection.<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nWARNING: Final field f in p.C has been [mutated\/unreflected for mutation] by class com.foo.Bar.caller in module N (file:\/path\/to\/foo.jar)\nWARNING: Use --enable-final-field-mutation=N to avoid a warning\nWARNING: Mutating final fields will be blocked in a future release unless final field mutation is enabled\n<\/pre>\n<p>This can be controlled via the JVM option <code>--illegal-final-field-mutation<\/code>, which can take the following values:<\/p>\n<ul>\n<li><code>allow<\/code>: allows final fields to be modified.<\/li>\n<li><code>warn<\/code>: issues a warning in the JVM logs the first time a final field is modified; this is the default behavior in Java 26.<\/li>\n<li><code>debug<\/code>: same as <code>warn<\/code> but also includes the stack trace.<\/li>\n<li><code>deny<\/code>: prohibits modification of final fields.<\/li>\n<\/ul>\n<p>A future release of Java will change the default behavior to <code>deny<\/code>.<\/p>\n<p>It is possible to selectively allow modification of final fields via the JVM option <code>--enable-final-field-mutation=M1,M2<\/code>, which takes as a parameter the list of modules to be allowed.<\/p>\n<p>More information in <a href=\"https:\/\/openjdk.org\/jeps\/500\">JEP 500<\/a>.<\/p>\n<h2>JEP 504: Remove the Applet API<\/h2>\n<p>Removes the applet API, which had been deprecated for removal in Java 17.<\/p>\n<p>Current browsers have not supported applets for a long time anyway.<\/p>\n<p>More information in  <a href=\"https:\/\/openjdk.org\/jeps\/504\">JEP 504<\/a>.<\/p>\n<h2>JEP 516: Ahead-of-Time Object Caching with Any GC<\/h2>\n<p>JEP 483: [Ahead-of-Time Class Loading &amp; Linking] (<a href=\"https:\/\/openjdk.org\/jeps\/483\">https:\/\/openjdk.org\/jeps\/483<\/a>) introduced in Java 24 the ability to create an AOT (Ahead of Time) cache containing the classes already loaded and linked by an application to improve its startup time.<\/p>\n<p>This was enhanced in Java 25 with method profiling information via <a href=\"https:\/\/openjdk.org\/jeps\/515\">JEP 515: Ahead-of-Time Method Profiling<\/a>.<\/p>\n<p>In Java 26, this cache has been improved to store objects in a GC-agnostic manner, enabling support for all GCs, and above all, the use of an AOT cache by a JVM using a different GC than the one used when the cache was created.<\/p>\n<p>More information in <a href=\"https:\/\/openjdk.org\/jeps\/516\">JEP 516<\/a>.<\/p>\n<h2>JEP 517: HTTP\/3 for the HTTP Client API<\/h2>\n<p>JEP 517 adds support for <strong>HTTP\/3<\/strong> in the JDK HTTP client.<\/p>\n<p>The JDK HTTP client still uses HTTP\/2 by default.<\/p>\n<p>To use HTTP\/3, you must select this version when creating the HTTP client:<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nvar client = HttpClient.newBuilder()\n               .version(HttpClient.Version.HTTP_3)\n               .build();\n<\/pre>\n<p>More information in  <a href=\"https:\/\/openjdk.org\/jeps\/517\">JEP 517<\/a>.<\/p>\n<h2>JEP 522: G1 GC: Improve Throughput by Reducing Synchronization<\/h2>\n<p><strong>G1<\/strong> is the default garbage collector (GC), but it sometimes performs less well than <strong>ParallelGC<\/strong> because, in order to perform part of its work concurrently with the application, it needs to share CPU resources with application threads and coordinate with them.<\/p>\n<p>JEP 522 increases both application throughput and latency by reducing the amount of synchronization required between application threads and GC threads. More specifically, G1&#8217;s <em>write barrier<\/em> has been modified to no longer synchronize on the <em>card table<\/em> by adding a second <em>card table<\/em>. Without going into too much detail, the <em>write barrier<\/em> is a piece of code called each time an object reference is stored in a field, allowing G1 to track allocations without stopping application threads. Removing this synchronization will reduce the cost of G1 for each write and thus improve application throughput.<\/p>\n<p>More information can be found in  <a href=\"https:\/\/openjdk.org\/jeps\/522\">JEP 522<\/a>.<\/p>\n<h2>UUIDv7 support<\/h2>\n<p>The new <code>UUID.ofEpochMillis(long)<\/code> method allows you to create a <strong>type 7 UUID<\/strong> (UUIDv7) from a Unix Epoch timestamp.<\/p>\n<img decoding=\"async\" src=\"\/wordpress\/wp-content\/uploads\/uuidv7.webp\" alt=\"uuidv7\" title=\"\" class=\"alignnone\" \/>\n<p>UUIDv7s are created by assigning a Unix timestamp in milliseconds to the most significant 48 bits, assigning the required version (4 bits) and variant (2 bits), and filling the remaining 74 bits with random bits.<\/p>\n<p>The main feature of UUIDv7 is that they are monotonic (each subsequent value is greater than the previous value). This is because the timestamp value is part of the UUID.<\/p>\n<p>The big advantage of UUIDv7 is that they are naturally sortable, making them a good choice for database identifiers and filling one of the gaps in previous versions of UUID. They remain 128 bits long, so they are compatible with previous UUID type fields.<\/p>\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><em>None!<\/em><\/strong><\/p>\n<p>This is rare enough to warrant highlighting. Some of the features that have been in preview for a long time are on hold pending 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\/524\">JEP 524<\/a> &#8211; <strong>PEM Encodings of Cryptographic Objects<\/strong>: second preview, new API that brings support for the Privacy-Enhanced Mail (PEM) format to Java. Some changes in the API, but the <code>PEMEncoder<\/code> and <code>PEMDecoder<\/code> classes still offer the same API.<\/li>\n<li><a href=\"https:\/\/openjdk.org\/jeps\/525\">JEP 525<\/a> &#8211; <strong>Structured Concurrency<\/strong>: sixth preview, new API that simplifies writing multithreaded code by allowing multiple concurrent tasks to be treated as a single processing unit. A few minor changes.<\/li>\n<li><a href=\"https:\/\/openjdk.org\/jeps\/526\">JEP 526<\/a> &#8211; <strong>Lazy Constants<\/strong>: second preview, new API for creating constants that are initialized on demand.<\/li>\n<li><a href=\"https:\/\/openjdk.org\/jeps\/529\">JEP 529<\/a> &#8211; <strong>Vector API<\/strong>: eleventh incubation, API for expressing vector calculations that compile at runtime into vector instructions for supported CPU architectures. No change. It has been agreed in the JEP that the Vector API will remain in incubation until the 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 is expected to bring.<\/li>\n<li><a href=\"https:\/\/openjdk.org\/jeps\/530\">JEP 530<\/a> &#8211; <strong>Primitive Types in Patterns, instanceof, and switch<\/strong>: fourth preview, adds support for primitive types in <code>instanceof<\/code> and <code>switch<\/code>, and enriches pattern matching to support primitive type patterns: in <code>instanceof<\/code>, in <code>switch<\/code> cases, and in record deconstruction. Two changes: improvement of the definition of <a href=\"https:\/\/openjdk.org\/jeps\/530#Safety-of-conversions\">unconditional exactness<\/a> and application of stricter <a href=\"https:\/\/openjdk.org\/jeps\/530#Dominance\">dominance<\/a> in switches, which may cause the compiler to reject more cases than before.<\/li>\n<\/ul>\n<p>For details on these, please refer to my previous articles.<\/p>\n<h2>Miscellaneous<\/h2>\n<p>Various additions to the JDK:<\/p>\n<ul><li><code>Process.close()<\/code>: Closes all read and write streams and waits for the process to finish. In addition, <code>Process<\/code> now implements <code>AutoCloseable<\/code>, which means it can be used in a <strong>try-with-resources<\/strong> statement.<\/li>\n<li><code>String.compareToFoldCase()<\/code> and <code>String.equalsToFoldCase()<\/code>: implementation of <code>equals<\/code> and <code>compareTo<\/code> that use Unicode <strong>case folding<\/strong>.<\/li>\n<li><code>BigInteger.rootn()<\/code> and <code>BigInteger.rootnAndRemainder()<\/code>: Returns the nth integer root.<\/li>\n<li><code>Duration.MAX<\/code> and <code>Duration.MIN<\/code>: maximum and minimum supported durations.<\/li>\n<li><code>Instant.plusSaturating()<\/code>: Returns a copy of this instant plus the specified duration, with saturated semantics. If the result is before MIN, returns MIN; if the result is after MAX, returns MAX; otherwise, returns <code>plus()<\/code>.<\/li>\n<li><code>ThreadLocalRandom.nextGaussian()<\/code>: Returns a pseudo-randomly selected double from a Gaussian distribution.<\/li>\n<li><code>Comparator.min(Object, Object)<\/code> and <code>Comparator.max(Object, Object)<\/code>: Returns the smallest or largest object between the two objects passed as parameters.<\/li>\n<li><code>HttpRequest.BodyHandlers.ofFileChannel()<\/code>: Returns a <code>BodyHandler<\/code> from a <code>FileChannel<\/code>.<\/li>\n<\/ul>\n<p>All of the new APIs in JDK 26 can be found in <a href=\"https:\/\/javaalmanac.io\/jdk\/26\/apidiff\/25\/\">The Java Version Almanac \u2013 New APIs in Java 26<\/a>.<\/p>\n<h2>Internal changes, performance, and security<\/h2>\n<p>Like all new versions of Java, OpenJDK 25 contains a number of performance optimizations and security enhancements.<\/p>\n<p>In terms of performance, there are no major changes, but quite a few minor ones. I noticed this one, which improves the performance of <code>ArrayList.addAll()<\/code> by adding a fast path in cases where the collection itself is an <code>ArrayList<\/code> that will copy the underlying array. More information can be found in <a href=\"https:\/\/github.com\/openjdk\/jdk\/pull\/28116\">PR #28116<\/a>.<\/p>\n<p>On the security side, I haven&#8217;t noticed anything yet, but I will update the article if necessary.<\/p>\n<h2>JFR Events<\/h2>\n<p>Here are the new Java Flight Recorder (JFR) events for the JVM:<\/p>\n<ul><li><code>StringDeduplication<\/code>: no description.<\/li>\n<li><code>FinalFieldMutation<\/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\/26.html\">JFR Events<\/a> page.<\/p>\n<h2>Conclusion<\/h2>\n<p>We are clearly left wanting more, as this release brings very few new features and most of the features already in preview or incubator module remain so.\nHowever, we can note the support for HTTP\/3 and UUIDv7, which are welcome additions for modern application development.<\/p>\n<p>As always, we&#8217;re eagerly awaiting the Valhalla project&#8230; although <a href=\"https:\/\/www.youtube.com\/watch?v=1lYsDMOc7hM\">new rumors<\/a> have emerged predicting that Java 28 will include the first features related to the Valhalla project, namely <a href=\"https:\/\/openjdk.org\/jeps\/401\">Value Classes and Objects<\/a>!<\/p>\n<p>To see all the changes in Java 26, check out the <a href=\"https:\/\/jdk.java.net\/26\/release-notes\">release notes<\/a>.<\/p>","protected":false},"excerpt":{"rendered":"<p>Now that Java 26 is features complete (Rampdown Phase Two 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 25, Java 24, Java 23, Java 22, Java 21, Java 20, Java 19, Java 18, Java 17, Java 16, Java&#8230;<p class=\"read-more\"><a class=\"btn btn-default\" href=\"https:\/\/www.loicmathieu.fr\/wordpress\/informatique\/java-26-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_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_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}},"categories":[9],"tags":[11,232,163],"class_list":["post-2073","post","type-post","status-publish","format-standard","hentry","category-informatique","tag-java","tag-java26","tag-whatsnew"],"aioseo_notices":[],"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":2073,"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":2073,"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":2073,"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":2073,"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":2073,"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":2073,"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\/2073","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=2073"}],"version-history":[{"count":25,"href":"https:\/\/www.loicmathieu.fr\/wordpress\/wp-json\/wp\/v2\/posts\/2073\/revisions"}],"predecessor-version":[{"id":2134,"href":"https:\/\/www.loicmathieu.fr\/wordpress\/wp-json\/wp\/v2\/posts\/2073\/revisions\/2134"}],"wp:attachment":[{"href":"https:\/\/www.loicmathieu.fr\/wordpress\/wp-json\/wp\/v2\/media?parent=2073"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.loicmathieu.fr\/wordpress\/wp-json\/wp\/v2\/categories?post=2073"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.loicmathieu.fr\/wordpress\/wp-json\/wp\/v2\/tags?post=2073"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}