惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Jina AI
Jina AI
S
SegmentFault 最新的问题
D
DataBreaches.Net
H
Help Net Security
有赞技术团队
有赞技术团队
M
MIT News - Artificial intelligence
Martin Fowler
Martin Fowler
IT之家
IT之家
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
腾讯CDC
罗磊的独立博客
Y
Y Combinator Blog
阮一峰的网络日志
阮一峰的网络日志
云风的 BLOG
云风的 BLOG
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
WordPress大学
WordPress大学
Microsoft Security Blog
Microsoft Security Blog
J
Java Code Geeks
Vercel News
Vercel News
Hugging Face - Blog
Hugging Face - Blog
aimingoo的专栏
aimingoo的专栏
Stack Overflow Blog
Stack Overflow Blog
Recent Announcements
Recent Announcements
博客园 - 三生石上(FineUI控件)

Swift for Visual Studio Code comes to Open VSX Registry | InfoWorld

Notion courts developers with a platform for AI agents and workflow automation Using continuous purple teaming to protect fast-paced enterprise environments A better way to work with SQL Server Evidence-driven workflows: Rethinking enterprise process design AWS debuts Graviton-powered Redshift RG instances to cut analytics costs SAP’s AI promises last year? Most are still rolling out First look: Lemonade serves up local AI with limitations GitLab CEO sees developer tool bill increasing 100-fold Red Hat adds support for agentic AI development Kill the loading spinner with local-first data and reactive SQL A networking revolution at AWS Tokenmaxxing is super dumb How to add AI to an existing product (without annoying users) Your AI doesn’t need another database What happens when engineering teams reorganize around AI agents Python isn’t always easy When cloud giants meddle in markets 12 model-level deep cuts to slash AI training costs The best new features in Python 3.15 Teradata launches platform for enterprise AI agents moving beyond pilots Three skills that matter when AI handles the coding MongoDB targets AI’s retrieval problem Building AI apps and agents with Microsoft Foundry Designing front-end systems for cloud failure No, AI won’t destroy software development jobs Diskless databases: What happens when storage isn’t the bottleneck Vibe coding or spec-driven development? The agentic AI distraction Vibe coding or spec-driven development? How to choose Cloud providers are blinded by agentic AI
What’s new and exciting in JDK 26
2026-05-12 · via Swift for Visual Studio Code comes to Open VSX Registry | InfoWorld

Simon Ritter

by Simon Ritter

opinion

May 12, 20267 mins

With the release of JDK 26, which arrived March 17, we’ve now seen 17 versions of Java delivered under the time-based six-month release cadence. Nobody can call this anything other than a huge success for Java. In the last eight years, we’ve seen the Java platform move forward faster than at any time in its history. In addition, the faster release cadence has made preview features and incubator modules a practical reality. This allows fully developed features to be tested by developers, with feedback incorporated before the feature is finalized. Within practical limits, Java developers get exactly what they want in new features.

As an interesting note, JDK 26 is the first Java version in which no preview features have been made final. What then does JDK 26 deliver?

There are 10 JDK Enhancement Proposals (JEPs), which are the mechanism for defining new features in the OpenJDK project. This is slightly below average, but it’s worth noting that it is not a long-term support (LTS) release. LTS versions of Java are the ones that OpenJDK distributions commit to providing extended maintenance and support for, so they are more likely to be used in production. This does not mean JDK 26 is not production quality; if you use a CI/CD pipeline with frequent deployments, JDK 26 will be great for running your applications.

Let’s break down the new features by category: the Java language, the libraries, and the runtime.

Improvements in the Java language

The only language-specific feature is the continued development of primitive types in patterns, instanceof, and switch (JEP 530), which is in its fourth preview. Although Java is an object-oriented language, Java does not treat everything as an object; it has primitive values to improve performance. This JEP allows primitive types to be used in places where previously, you would have needed a reference type. Changes have been made to resolve issues found when combining primitive types (like int) with reference types (like the wrapper class Integer).

Improvements in the Java libraries

The bulk of the changes in JDK 26 are in the libraries.

  • JEP 517: HTTP/3 for the HTTP Client API. The HTTP Client API has been enhanced to include support for the latest HTTP/3 protocol. Rather than using TCP, which HTTP/2 and earlier versions rely on, HTTP/3 uses the UDP-based QUIC protocol. This delivers better performance without requiring any code changes, other than specifying the protocol when creating the connection.
  • JEP 524: PEM Encoding for Cryptographic Objects. Cryptographic objects such as public keys, private keys, certificates, and certificate revocation lists are often transmitted using e-mail, and the Privacy-Enhanced Mail (PEM) format is ideal for this. This JEP adds a concise API for converting between PEM text and cryptographic objects, and back again.
  • JEP 525: Structured Concurrency. Writing cooperative multi-threaded code is notoriously difficult to get right. Over its history, Java has added many features to make this easier, from the Concurrency Utilities APIs to the ForkJoin framework and, more recently, Virtual Threads. Structured Concurrency adds to this toolbox, treating groups of related tasks running in different threads as single units of work. This allows streamlined error handling and cancellation, improving reliability and enhancing observability. Developers will be familiar with the approach, since it is like the try-with-resources syntax.
  • JEP 526: Lazy Constants. This was previously called “stable values,” but the new name better reflects the goal of this feature: to provide objects that hold unmodifiable data. Although Java has final fields, Lazy Constants offer greater flexibility in the timing of their initialisation.
  • JEP 529: The Vector API. This JEP is now incubating for the eleventh time, which is a record for a JEP. As this API is part of the larger Project Valhalla, it will not be finalized until more of that project is incorporated into the Java platform. In this API, vectors refer to the very wide registers available in modern processors. Specific instructions allow for multiple values to have the same operation applied to them across these registers in a single clock cycle, greatly improving performance for numerically intensive operations (like AI). Although the JIT compiler will auto-vectorize code it recognizes, it is unable to do this in all situations where vectors can be used. With the Vector API, a developer can explicitly specify how they want the vector operations to be used by the JIT compiler.
  • JEP 504: Remove the Applet API. Applets were what really set Java on its road to success when it was first launched. However, browsers (where Applets were used) have long since moved on, and no mainstream browser supports the Java Plugin required to run Applets. The Java Plugin was removed from Oracle JDK 11, is not part of the OpenJDK project, and remains closed-source. The Applet API is the final remaining component and has been deprecated for removal since JDK 17.

Improvements in the Java runtime

Finally, we have runtime changes:

  • JEP 500: Prepare to make final mean final. As mentioned earlier, Java has the concept of final fields, whose value can be set only once. Although a final field cannot be modified simply by assigning it a new value, it is still possible to change its value in certain cases through a feature called deep reflection. This limits what the JVM can do to optimize performance, since it still needs to accommodate the possibility of a change. This JEP makes it clear to developers that in a future release, they will no longer be able to use deep reflection in this way and should change their code in preparation.
  • JEP 516: Ahead-of-time (AOT) object caching with any GC. This is part of the larger OpenJDK Project Leyden, whose goal is to reduce the time an application takes to warm up to its optimum performance level. The need to identify frequently used code and compile it as the application is running is why performance does not start at full speed. This JEP enables the AOT cache, which is data about loaded and initialized classes, to work with any garbage collector. This was necessary because the ZGC collector did not work with the AOT cache.
  • JEP 522: G1 GC improve throughput by reducing synchronization. G1 is the default garbage collector in the HotSpot VM and works well in many situations. This JEP improves efficiency for this collector by reducing the amount of synchronization required between the GC and application threads. This is transparent to application code.

In conclusion, despite not including as many JEPs as some releases, there are still useful and interesting new additions to the Java platform. Although JDK 26 is not an LTS version, developers should still test their applications with this release to avoid accumulated issues when JDK 29, the next LTS release, appears next year.

New Tech Forum provides a venue for technology leaders—including vendors and other outside contributors—to explore and discuss emerging enterprise technology in unprecedented depth and breadth. The selection is subjective, based on our pick of the technologies we believe to be important and of greatest interest to InfoWorld readers. InfoWorld does not accept marketing collateral for publication and reserves the right to edit all contributed content. Send all inquiries to doug_dineley@foundryco.com.

Simon Ritter

by Simon Ritter

Contributor

Simon Ritter is the Deputy CTO of Azul. Simon joined Sun Microsystems in 1996 and spent time working in both Java development and consultancy. He has been presenting Java technologies to developers since 1999, focusing on the core Java platform as well as client and embedded applications. At Azul, he continues to help people understand Java and Azul’s JVM products. Simon is a Java Champion and two-time recipient of the JavaOne Rockstar award. In addition, he has represented Azul on the JCP Executive Committee, the OpenJDK Vulnerability Group, and the JSR Expert Group since Java SE 9.

More from this author