Contents
JCON
▪️ Code Reviews with AI: A Developer Guide
CORE JAVA
▪️ 25 Versions in 30 Years: A Brief History of the Java Language
▪️ Here’s Java 25, Ready to Perform to the Limit
▪️ Java 25 and the New Age of Performance: Virtual Threads and Beyond
▪️ How To Do Structured Concurrency in Java 25
▪️ Mastering Memory Efficiency with Compact Object Headers in JDK 25
▪️ Java 25: JEP 512, JBang, Notebooks, GraallPy and Raspberry Pi for Interactive Learning
▪️ Java 25: The tl;dr Version
▪️ Virtual Threads, Structured Concurency and Scoped Values: Putting it All Together
▪️ Java’s Productivity Trifecta: Compact Sources, Flexible Constructors, and Advanced Pattern Matching
▪️ Behind the Bytecode: Exploring Java Features with Javap Tool
▪️ The Runtime Illusion: What Java Really Runs
▪️ What I (Still) Miss: My Most Wanted Java Features
PERFORMANCE
▪️ Speed Up Existing Deployments with the Right JVM Features
GENAI
▪️ Java 25 Meets GenAI: Building Agentic Microservices for Real-Time Financial Systems
▪️ Bring AI into Your Jakarta EE Apps with LangChain4JCDI (formerly SmallRye-LLM)
▪️ Bridging Creativity and Code: Generative AI Video with Java and RunwayML
▪️ Building MCP Tools (for AI Agents) using Spring AI
▪️ Can GenAI Help Reduce Energy Used by Java Code?
FRAMEWORKS & API
▪️ Java’s Impact in Technology Spectrum
▪️ Build Your Custom Plugins for Your Enterprise Java Applications with Jakarta EE CDI
TESTING & QUALITY
▪️ Test Your Tests: Mutation Testing in Java with PIT
▪️ Houston, We have Problems with the Queries
SECURITY
▪️ PEM Files as an Alternative to Keystores
PROJECT MANAGEMENT
▪️ Beyond Code: Skills for Your Next Career Step
Details
Page count: 152
Authors: Richard Fichtner, Simon Ritter, Hanno Embregts, Bram Janssens, Michaela Ghorgeh-Roman, Wanderson Xesquevixos, Igor De Souza, A. Mahdy Abdelaziz, Balkrishna Rawool, ANM Bazlur Rahman, Mahendra Rao Bandaru, Harshita Popuri, Gireesh Punathil, Michel Charpentier, Dmitry Chuyko, Sibasis Padhi, Buhake Sindi, Philipp Münzner, Eldar Sultanov, Lokesh Chenta, Vijayabhaskar Reddy, Oliver Bierlaire, Vipin Menon, Julius Mischok, Andres Sacco, Sebastian Hempel, Alexander Arians
Editorial
From Virtual Threads to Vector Databases: Why Java 25 is the Foundational LTS for the AI Enterprise
Welcome to a very special edition of JAVAPRO, dedicated entirely to the latest Long-Term Support (LTS) release: Java 25. Every LTS release serves as a stable bedrock for the enterprise world for years to come, and this one, arriving precisely on schedule, certainly is no exception. The six-month release cadence continues to deliver, consistently refining and graduating features from the ambitious projects that are reshaping the platform. Java 25 isn’t defined by a single, seismic feature, but rather by a cohesive and powerful push towards three core pillars: developer productivity, performance, and modern concurrency.
The Value on the Table: Java 25’s Core Impact
The features finalized or significantly advanced in Java 25 create genuine, tangible value for every Java developer. The advancements around Structured Concurrency (now in its fifth preview) and the finalization of Scoped Values (JEP 506) fundamentally change how we write concurrent, high-throughput code. Paired with Virtual Threads (which arrived in Java 21), these tools make handling thread-local data safer, simpler, and far more efficient, directly impacting the scalability and reliability of microservices and complex server-side applications. Furthermore, new language features like Module Import Declarations (JEP 511) and Compact Source Files and Instance Main Methods (JEP 512) directly address decades-old pain points. The former cleans up cluttered import lists for modular applications, while the latter is a huge win for beginners, scripts, and educational content, simplifying the “Hello World” barrier to entry. This LTS release also delivers significant runtime improvements through deep changes under the hood. The promotion of Compact Object Headers (JEP 519) to a product feature, coupled with the introduction of the Generational Shenandoah Garbage Collector (JEP 521), means applications will consume less memory and experience better-managed, more predictable latencies. These are high-impact, low-effort gains that benefit nearly every deployed Java application.
A Look Ahead to Java 26
Following the solid foundation of this LTS, the next non-LTS release, Java 26 (due March 2026), promises further evolution of the platform. We are anticipating the integration of the new HTTP/3 for the HTTP Client API (JEP 517), which is crucial for modern networking that demands low-latency, high-performance web communication via the QUIC protocol. We expect more runtime optimization with a push to improve G1 GC throughput by reducing synchronization (JEP 522), ensuring Java’s default garbage collector keeps pace with the demands of highly concurrent systems. Finally, we will likely see the finalization of current preview features like Structured Concurrency and further evolution of pattern matching with Primitive Types in patterns (JEP 507), proving that the six-month cycle is effectively turning experimentation into standard practice.
Generative AI: The New Frontier for Java Developers
Separate from the core JDK, one area demands the immediate attention of every Java developer: Generative AI (GenAI). While Python still dominates model training, Java’s primary role in GenAI is as the enterprise orchestrator, excelling at production-grade, scalable application development. This dynamic has led to the rapid maturation of libraries that bridge the gap, with Spring AI and LangChain4j emerging as the de-facto standards for building GenAI-powered applications, enabling developers to integrate various Large Language Models (LLMs) and vector databases without needing deep Python or data science expertise. The current focus is heavily on patterns like Retrieval-Augmented Generation (RAG), where Java is used to connect LLMs to trusted, internal business data – the real value driver in the enterprise. The next 12 months are critical, and Java developers must immediately prioritize a few key areas. They should learn how to effectively communicate with LLMs through prompt engineering, which is now a fundamental development skill. Developers need to master the implementation of RAG architecture patterns using libraries like Spring AI to build secure, context-aware applications. A solid understanding of vector databases for semantic search and efficient data retrieval in AI workflows is also essential. Finally, embracing AI-Assisted Coding tools like GitHub Copilot and Amazon CodeWhisperer is no longer optional, as these are becoming indispensable for boosting personal and team productivity.
No, I don’t believe developers will be replaced by AI in the foreseeable future. But AI is radically changing the way developers work right now. And GenAI is now beginning to change enterprise software as well. And those who don’t adapt quickly will soon be unable to keep pace in terms of productivity and will very likely be replaced sooner or later. That’s why it’s never been more important than today to not get left behind when it comes to AI. With our new JCON GenAI workshop series, which we prefer to organize in collaboration with Java User Groups, we want to inspire Java developers to get started with development using AI tools and to develop GenAI use cases. We’ve secured leading innovators in the Java space as speakers for this. Take advantage of this opportunity, come to our JCON GenAI workshops and attend the meetups of your local JUGs to exchange ideas and share experiences.
The Verdict on Java 25
Is Java 25 the big deal that dramatically overturns the table? No, it’s not an earth-shattering, revolutionary release like the launch of the Module System (Java 9) or Virtual Threads (Java 21). However, it is a solid evolution and an exceptionally well-rounded LTS. Java 25 takes the revolutionary groundwork laid by Project Loom (Virtual Threads) and makes it safer and more practical with Scoped Values and Structured Concurrency. Critically, it simultaneously provides essential quality-of-life improvements for the developer experience and significant, subtle performance bumps for the JVM through compact object headers and GC enhancements. Java 25 is less about dazzling new concepts and more about maturity, stability, and pragmatic enterprise value. It’s the LTS that takes the future of Java and makes it a reliable reality today, delivering exactly what the community, and the enterprise, truly needed.
In this issue, you’ll learn more about the latest Java features and news about GenAI with Java. My special thanks go to all the fantastic authors of this issue, as well as to all the authors who constantly write on our online platform, without whom JAVAPRO would not be possible. Please recommend us to your colleagues and friends. JAVAPRO is the completely free Java magazine for the international Java community. I hope you enjoy reading this issue.

