News

Java Annotated Monthly – March 2025

Welcome to this month’s Java Annotated Monthly! As always, we bring you the most interesting tutorials on Java, Kotlin, and other technologies, along with the latest news you don’t want to miss.

We’re also excited to introduce a brand-new AI section, which we reserve for the most fascinating content on the topic. And this month, we’re honored to feature Angie Jones as the author for our Featured Content section – so you know it’s going to be a great read!
A lot of exciting things are happening, so without further ado, let’s go! 

Featured Content

Angie Jones is the Global Vice President of Developer Relations at Block, Inc.

An award-winning educator and international keynote speaker, Angie shares her extensive knowledge with software companies and conference audiences worldwide.A master inventor, Angie is recognized for her innovative, out-of-the-box thinking, which has led to 27 patented inventions in virtual worlds, collaboration software, social networking, smarter planet initiatives, and software development processes.

As a Java Champion, I make it a point to stay up to date on what’s happening in the JVM ecosystem and, more importantly, share it with my fellow Java developers. To my delight, we’re seeing the Java ecosystem embrace AI integration more than ever, thanks to the Model Context Protocol (MCP). MCP offers a standardized way to connect AI models with various tools and data sources, which means we can now employ AI agents like Goose within our local environments.

JetBrains MCP Server

I was pleased to see that JetBrains created an MCP Server plugin that integrates with MCP-enabled AI agents like Goose and Claude Desktop. This combination allows developers to enhance their JetBrains IDEs with AI capabilities, enabling tasks like code analysis and automated refactoring directly within the development environment. For example, I used Goose within IntelliJ IDEA. and right from the IDE’s terminal, I asked it to upgrade my project from Java 14 to Java 21 and modernize my codebase using the latest Java features:

“Hey Goose, using the JetBrains extension, upgrade this project to use the latest Java LTS version and refactor the codebase to use newer Java features where beneficial.”

Within two minutes, I had a fully upgraded project with shiny new features such as string templates, pattern matching for switch and instanceof, sealed classes, records, text blocks, and switch expressions!

This alone blew me away, but I also loved that I could see how these new features worked within my own project, making them much easier to learn and apply.

Official MCP Java SDK

MCP is an open ecosystem. This means anyone can create an MCP server or even their own AI agent. There were already MCP SDKs for Kotlin, TypeScript, and Python, and as of mid-February (Valentine’s Day, to be exact ❤️), there’s now an official MCP Java SDK! There are more than 1,300 MCP servers that provide access to tons of APIs, but if there’s an API that you want to add to the ecosystem, you can now build it yourself with the MCP Java SDK.

Spring AI with MCP

For those utilizing the Spring framework, you simply must check out Spring AI’s integration with MCP. Spring AI is incorporating MCP to make it easier for Spring Boot applications to interact with AI agents and external tools. For a visual demonstration of how MCP simplifies AI integration, check out this cool video by my dear friend and Spring expert, Josh Long.

More to explore!

I have to tell you, I’m having an absolute blast incorporating AI into my workflows. I’m feeling more productive, efficient, and creative than ever! I have my eye on two other MCP servers I want to try:

  • JavaFX MCP Server – allows you to create drawings using a JavaFX canvas directly from your AI agent. Whether it’s automating UI prototyping or generating visualizations, this opens up some exciting possibilities.
  • JDBC MCP Server – a database connector that allows AI agents to interact with any JDBC-compatible database, including MySQL, PostgreSQL, Oracle, SQL Server, SQLite, and more. This enables natural language querying, inserting, updating, and deleting data.

If you haven’t played around with MCP and AI agents yet, now’s the perfect time. 

Java News

Java News Roundup 1, 2, 3, 4 – Get the latest news from the Java community. 

Join the Celebration of 30 Years of Java – Join a virtual event on March 13, hosted by Azul, to celebrate 30 years of Java. 

JDK 24 and JDK 25: What We Know So FarMichael Redlich summarizes the new features in JDK 24 and hints at what’s coming in JDK 25.

Java Resists Quantum Attacks – Inside Java Newscast #85 – Explore how Java is preparing for the future of cryptography with new APIs and algorithms to defend against quantum computing threats.

Java 24: What’s New? – Get an overview of the features and improvements in Java 24, including updates to garbage collection, object headers, and security enhancements.

Java Language Evolution in 2025 – Inside Java Newscast #84 – Discover how Project Amber plans to enhance the Java language in 2025.

Keep an eye on some expected deprecations:

Java Tutorials and Tips

Modern Java Deep Dive – In this talk recorded at Devoxx Belgium 2024, Nicolai Parlog explores the new features and improvements in Java 22 and 23, covering language updates, API enhancements, and changes to runtime.

IntelliJ 101 — Part 1: Save Time with Regex Search & ReplaceAicha Laafia explains how to use regular expressions in IntelliJ IDEA to find and replace text quickly and make data reformatting easier.

Garbage Collection in Java – The progress since JDK 8 – Since JDK 8, the GC performance has improved significantly, removing much of the overhead usually associated with automatic memory management. Learn more about its evolution from this talk by Stefan Johansson

Assert but VerifyDonald Raab discusses how relying solely on inheritance for convenience in Java can lead to problems and emphasizes the importance of verifying assumptions in code.

These IntelliJ IDEA Features Will SAVE YOUR BACONTrisha Gee shares her top five IntelliJ IDEA features that could save you from harmful mistakes, while also giving you a visual tutorial on how to apply those features.

Project Loom: Structured Concurrency – Java – Learn how Project Loom’s structured concurrency simplifies handling multiple tasks in Java by organizing them in a clear and predictable way.

Introducing the Model Context Java SDK – The MCP Java SDK provides a comprehensive foundation for integrating AI models with external tools and data sources. Find out which key features are included in the SDK. 

Project Loom and Virtual Threads: Next PhasesAlan Bateman discusses how to use virtual threads effectively in Java, addresses common issues like “pinning” with object monitors, and demonstrates how structured concurrency can manage related tasks as a single unit.

Teaching Java is Getting Simpler – If you’re currently teaching Java, now would be a good time to consider how you can introduce some of the features described in the article to your students.

Kotlin Corner

OpenAI vs. DeepSeek: Which AI Understands Kotlin Better? – JetBrains Research evaluated several AI models to see which better understands Kotlin. Dive into this article to discover the results! 

Ktor 3.1.0 is out – Check out the latest updates: a command-line tool for creating projects, better server-sent events support, WebAssembly compatibility, and initial steps toward gRPC integration. 

Kotlin for Server-Side Content Creators – Learn more about an initiative to highlight and promote high-quality content created by developers using Kotlin for server-side development.

Kotlin Multiplatform Scalability Challenges on a Large Project – In this article, Andrei Beriukhov shares his experience addressing scalability challenges when implementing Kotlin Multiplatform in a large project.

Should you use Kotlin Sequences for Performance?Chris Banes explains when using Kotlin’s Sequence is helpful and when it might slow things down, showing that it’s not always the best choice for performance.

What are all of those Kotlin function types for? – Kotlin’s got a surprising number of function types, but what are they all used for? In this video, Dave Leeds looks at the range of different function types – from regular function types to KCallable, KFunction, KProperty, the Function interface, and more – and outlines use cases for each one.

AI

JetBrains AI Coding Agent Junie Provides Tight Integration with JetBrains IDEs – Learn more about Junie, a new AI coding agent by JetBrains that can perform coding tasks within your project and understand its context within the IDE. 

How Do LLMs Benefit Developer Productivity? – In this article, Cheuk Ting Ho explains how large language models (LLMs) enhance developer productivity and demonstrates her findings in JetBrains AI Assistant.

Evolution of Java Ecosystem for Integrating AIPoonam Parhar describes how the Java ecosystem is evolving to help developers add AI features to their applications, highlighting tools like LangChain4j, Spring AI, and Oracle’s Generative AI service.

A Generative AI Agent with a real declarative workflowGuillaume Laforge shows how to make an AI agent that writes stories and creates images using a step-by-step workflow instead of regular coding.

Doc-Powered AI Assistant – JetBrains AI Assistant can access the IDE’s own documentation. This article provides more details.

Why and How JetBrains Built Mellum – the LLM Designed for Code Completion – JetBrains’ AI-powered code completion is driven by its own model, Mellum – learn why it was built in this blog post.

Prompt Injection for Large Language ModelsGeorg Dresler explains how attackers can exploit prompt injection vulnerabilities in large language models to steal confidential data and suggests ways to prevent such attacks.

Checking out Junie, a coding agent by JetBrains – In this article, Igor Kulakov explores his experience using JetBrains’ new AI coding agent, Junie.

Prompt Engineering: Is it a New Programming Language?Hien Luu debates if prompt engineering is a programming language in itself, arguing the case for both sides and exploring how this may impact learning and skill acquisition for software developers.

AI Assistant expands with cutting-edge models – JetBrains AI Assistant now supports LLMs from Anthropic and OpenAI, as well as local models via LM Studio, offering developers more flexibility.

Episode 106. Spring AI and Ollama – This is a great episode that explores how to run large language models (LLMs) on personal computers and interact with them using Java. So, if you ever wanted to start experimenting with LLMs, but didn’t know where to begin, this episode is a fantastic place to start!

How I Use AI: Meet My Promptly Hired Model InternArmin Ronacher shares his thoughts on the current state of AI, its limitations, and how developers can approach using it effectively.

How Do LLMs Benefit Developer Productivity? – In this article, Cheuk Ting Ho explains how large language models (LLMs) enhance developer productivity and demonstrates her findings in JetBrains AI Assistant. 

Building local LLM AI-Powered Applications with Quarkus, Ollama and Testcontainers – Find out how to create AI-powered apps that run on your computer using Quarkus, Ollama for AI models, and Testcontainers for easy testing.

Languages, Frameworks, Libraries, and Technologies

This week in Spring 1, 2, 3, 4 – The freshest news from the Spring ecosystem. 

Remote Development made simple with DevPodNicolas Fränkel explains how DevPod makes it easy to set up the same development environment for everyone on a team.

A Bootiful Podcast: ‘Just Use Postgres!’ author Denis MagdaJosh Long talks with Denis Magda about his new book, Just Use Postgres!, which examines how to use Postgres for a variety of use cases that an application developer should know.

Presentation: Zero Waste, Radical Magic, and Italian Graft – Quarkus Efficiency Secrets 

Holly Cummins discusses some of the technical underpinnings of Quarkus’s efficiency, providing advice for those using or considering Quarkus.

Five ways to speed up your Maven builds – In this post, Brian Demers demonstrates low-effort strategies for accelerating your Maven builds. He demonstrates a real-life example that brings a 1.5-minute build down to 7.5 seconds.

MySQL Performance Tuning with ReleemVlad Mihalcea introduces Releem, a tool that helps improve MySQL performance by analyzing your database and providing optimization suggestions.

Using LangChain4j to analyze PDF documentsEmil Lefkof explains how to use LangChain4j and Google Gemini AI to automatically extract structured metadata from PDF lease documents, streamlining the review process.

A Bootiful Podcast: HTMX creator Carson Gross – In this podcast, Josh Long hosts a talk with Carson Gross, the creator of HTMX, about simplifying web development by reducing client-side complexity.

Conferences and Events

Check out our selection of tech events for March:

Devnexus 2025 – Atlanta, USA, March 4–6. The IntelliJ IDEA team will be at the JetBrains booth. Come say hello!

Gatherers: The API Your Stream Was Missing – Online, March 13

Duke Turns 30 Java Celebrations – Online, March 13

JavaOne – Redwood Shores, USA, March 18–20

Voxxed Days Zurich – Zurich, Switzerland, March 25

Voxxed Days Bucharest – Bucharest, Romania, March 26–27

Harnessing the Power of AI in IntelliJ IDEA – Zurich, Switzerland, March 27

Culture and Community

Productivity is Messing Around and Having Fun – Join the QCon London for a talk by Holly Cummins and Trisha Gee in which they will discuss how having fun and taking breaks can boost developer productivity and satisfaction and why it’s important to make time for enjoyment at work.

The Efficiency Paradox and How to Save Yourself and the World – Here is another talk by Holly Cummins about how inefficiency harms both the planet and our well-being and offers strategies to reduce software waste and climate impact.

Context-switching is the main productivity killer for developersDr. Milan Milanović discusses how frequent task-switching disrupts developers’ focus, leading to reduced productivity and increased errors.

Foojay Podcast #67: Writing a book. Does it make you rich and famous?Frank Delporte discusses the realities of writing a book, sharing personal experiences and insights from guests Trisha Gee, Len Epp, Wim Deblauwe, and Marián Varga.

My Twenty-one Year Journey to Write and Publish My First Book – Coincidence or not, Donald Raab shares his 21-year journey of writing and publishing his first book, offering insights into the challenges and triumphs he experienced along the way.

Organizational Skills Beat Algorithmic WizardryJames Hague argues that managing complexity and organizing code are more crucial in programming than mastering complex algorithms. Do you agree?

And Finally…

Top Java Conferences and Events in 2025 – If you haven’t planned your networking and educational trips for the year, our article can help you with that. 

Database Migrations in the Real World – In this article, Siva Katamreddy discusses the challenges of managing database migrations in large-scale applications and offers best practices to ensure smooth and efficient schema changes.

Java 24: Build Games, Prototypes, Utilities, and More – With Less BoilerplateMala Gupta shows how Java 24’s new features help developers create games, prototypes, and utilities with less repetitive code.

JITWatch4i: Analyzing IntelliJ IDEA’s StartupJITWatch4i, a plugin for IntelliJ IDEA that helps developers analyze and visualize Java’s Just-In-Time (JIT) compilation processes within the IDE. Learn more in this article.

That’s it for today! We’re always collecting ideas for the next Java Annotated Monthly – send us your suggestions via email or X by March 20. Don’t forget to check out our archive of past JAM issues for any articles you might have missed!

image description

Discover more