Java Annotated Monthly – June 2025
Hi there, Java fans! It’s a new month, which means we’ve got a new batch of hot news, deep dives, and tasty tidbits from the Java world for you to enjoy. In this edition, Piotr Przybył joins us in the Featured Content section to share his cultivated list of content finds. We’re also testing a […]

Hi there, Java fans! It’s a new month, which means we’ve got a new batch of hot news, deep dives, and tasty tidbits from the Java world for you to enjoy. In this edition, Piotr Przybył joins us in the Featured Content section to share his cultivated list of content finds. We’re also testing a new, more concise format that is faster to read but still packed with value. Let us know if you like it or miss the old style.
Ready? Let’s go!
Featured Content
Greetings, fellow Java developers! It’s a pleasure to be here. It’s exciting to be in the Java community, for a language that celebrated its 30th anniversary, which has been proclaimed to be dead so many times, and it’s still doing surprisingly well. We can see that with all the exciting stuff happening around Java 25, and changes in the ecosystem at large.
I’m humbled and honoured to be here. It’s great to see the community and the ecosystem evolve, especially given that I’ve been a part of it since (checks notes…) 2003 ;-)
I was first exposed to Java at my alma mater, Wrocław University of Science and Technology. Recently, there’s been one more reason to be a proud alumnus: “Odra 5”!
“Odra 5” is the name of Poland’s first quantum computer, recently launched at the Wrocław University of Science and Technology. It’s a five-qubit machine, developed by Finnish company IQM Quantum Computers, that represents a significant milestone in the advancement of quantum computing in Central and Eastern Europe. I find the name cute and not without meaning for local IT history fans. You can read more about it here at the University’s official page. Also, “Odra” is the Polish name for the Oder river, and… computers manufactured in Wrocław in the 1960s.
Let’s get back from general Computer Science to Java. Unless you have been living in total wilderness, I think you might have heard a thing or two about the AI (r)evolution happening recently. ;-) Contrary to some rumours, Java is a very decent language that benefits from improvements in this area, and with the release of Spring AI 1.0, things will get even easier! The article by Josh Long, Philipp Krenn, and Laura Trotta (I know, and have lots of respect for all of them) will let you understand how to start with your own RAG quickly, benefiting from features of Spring AI, Elasticsearch, and more. Oh, and if you’d like to learn more about stuff like vector search or searching in general, AI, and so on, Elasticsearch Labs might be a good place to start.
Speaking about Java itself, there’s of course the 30th anniversary of Java! It’s a big thing, although it might be disturbing to some that the language that keeps dying is still pretty much alive and actively developed. Right now, there are 17 active Java Enhancement Proposals targeting Java 25, which in my opinion proves that despite its size and legacy, the Java ecosystem is still evolving fast. I couldn’t resist, and wrote about Java’s Structured Concurrency, Elasticsearch Java client, DevEx, and a Developer Advocate’s job on my personal page, touching on all of this.
I think that some reasons why our ecosystem is still robust are that we can learn from our past mistakes. While some of them are irreversible, many of them can shape how we think and evolve our systems and our daily jobs. A great example is the Allegro folks sharing how to avoid mistakes in Gradle, because with flexibility comes responsibility. And also, our tech stack and our jobs are not only the language, the SDK, the frameworks, and build/CI/CD tools, but predominantly our mindset. That’s something we shall all keep improving!
Java News
Check out the most recent news from the Java world:
- Java News Roundup 1, 2, 3, 4
- Java at 30: A Retrospective on a Language That Has Made a Big Impact
- Foojay Podcast #71: Celebrating 30 Years of Java with James Gosling
- Java 30 by JetBrains
- Happy 30th Birthday, Java!
- Java’s 30th Birthday
- Java at 30: The Genius Behind the Code That Changed Tech
- Strings Just Got Faster
- JEP targeted to JDK 25: 511: Module Import Declarations
- JEP targeted to JDK 25: 512: Compact Source Files and Instance Main Methods
- JEP targeted to JDK 25: 505: Structured Concurrency (5th Preview)
- JEP targeted to JDK 25: 513: Flexible Constructor Bodies
- Java 25 Introduces Stable Values API for Deferred Immutability and Improved Application Startup
- Instance Main Methods Move from Preview to Final in JDK 25
- JEP 510: Key Derivation Function API
- Structured Concurrency Revamp in Java 25 – Inside Java Newscast #91
Java Tutorials and Tips
Learn new things and enjoy unique insights from industry experts:
- Episode 35 “Stream Gatherers” with Viktor Klang
- Oracle’s new certification exam engine
- Adoption of the Model Context Protocol Within the Java Ecosystem
- Presentation: Stream All the Things — Patterns of Effective Data Stream Processing
- JavaFX 24 and Beyond
- Garbage Collection in Java: The Performance Benefits of Upgrading
- Mastering JVM Memory Troubleshooting – From OutOfMemoryErrors to Leaks
- Episode 36 “Ahead of Time Computation” with Dan Heidinga
- Java 24, Faster Than Ever
- Structured Concurrency in Action
- Pattern Matching in Java: Better Code, Better APIs
- Towards a JSON API for the JDK
Kotlin Corner
Everything you might have missed about Kotlin in May:
- KotlinConf 2025 Unpacked: Upcoming Language Features, AI-Powered Development, and Kotlin Multiplatform Upgrades
- Meet Koog: Empowering Kotlin Developers to Build AI Agents
- Strengthening Kotlin for Backend Development: A Strategic Partnership With Spring Present and Future of Kotlin for Web
- Amper Update, May’25
- How to Use Kotlin Notebooks for Productive Development
- Structuring Ktor Projects Using Domain-Driven Design (DDD) Concepts
- Kotlin LSP – The launch of the pre-Alpha Kotlin LSP and VS Code plugin.
AI
Learn more about the most recent AI news, innovations, problems, and predictions:
- A Practical Guide on Effective AI Use – AI as Your Peer Programmer
- Working with Junie in legacy code
- Help Predict the Future of AI in Software Development!
- Vibe coding an MCP server with Micronaut, LangChain4j, and Gemini
- Java for AI
- Build AI Apps and Agents in Java: Hands-On with LangChain4j
- From Architecture to Deployment: How AI-Powered Toolkits Are Unifying Developer Workflows
- Podcast: How To Improve the Quality of the Gen AI-Generated Code And Your Team’s Dynamics
- GenAI blood, sweat, and tears: Loading data to Pinecone
- Meet Koog: Empowering Kotlin Developers to Build AI Agents
- JetBrains AI Assistant – Now in Visual Studio Code
- Write AI agents in Java — Agent Development Kit getting started guide
- How to send prompts in bulk with Spring AI and Java Virtual Threads
- Beyond the chatbot or AI sparkle: a seamless AI integration
- AI Test Generation: A Dev’s Guide Without Shooting Yourself in the Foot
- Things you never dared to ask about LLMs — Take 2
- Ethics in AI’s Wild West: Biases & Responsibilities
- Context Collection Competition by JetBrains and Mistral AI
- Brokk: AI for Large (Java) Codebases
Languages, Frameworks, Libraries, and Technologies
Get to know programming technologies and frameworks better:
- This Week in Spring 1, 2, 3, 4
- How to send prompts in bulk with Spring AI and Java Virtual Threads
- Dynamic Tool Updates in Spring AI’s Model Context Protocol
- Gradle Best Practices – A Path to Build Happiness
- Semantic Search with Spring Boot & Redis
- Local AI with Spring: Building Privacy-First Agents Using Ollama
- A Bootiful Podcast: V Körbes on security from the platform on up
- What is RAG, and How to Secure It
Conferences and Events
Here are some of the must-attend online and offline events in June:
- IntelliJ IDEA Conf – Online, June 3–4
- J-Spring – Utrecht, Netherlands, June 5; Anton Arhipov is a speaker.
- Le Paris JUG Java Day – Paris, France, June 5
- JConf Méx – Nuevo México, Mexico, June 7
- Devoxx Poland – Krakow, Poland, June 11–13; Anton Arhipov and Marit van Dijk are the speakers.
- DevConf – Brno, Czechia, June 12–14
- JSail Unconference – Hemelum, Netherlands, June 23–27
- Voxxed Days Luxembourg – Mondorf-les-Bains, Luxembourg, June 19–20
Culture and Community
Take some time to think about the non-tech topics that are of significance to tech people at the moment:
- Imposter Syndrome in Tech
- Achieving Sustainable Mental Peace in Software Engineering with Help from Generative AI
- Be a Distinguished Java Engineer in the Age of Vibe Coding
- Built to Outlast: Cultivating a Culture of Resilience
- Book Review: Raising Young Coders
- From Code to Charisma: Emotional Mastery for Tech Leaders
- 97 Jokes Every Programmer Should Know
- Conversations I’ve had with Code
- What Can AI Do to Improve Diversity in the Tech Community?
And Finally…
Don’t miss the latest updates from the IntelliJ IDEA team:
- Sources, Bytecode, Debugging
- Do You Really Know Java?
- Coding Guidelines for Your AI Agents
- Finding Your Tribe – JUGs Unveiled
- The IntelliJ IDEA 2025.2 Early Access Program Is Open!
- Try Declarative Gradle EAP3 in IntelliJ IDEA
- Building Cloud-Ready Apps Locally: Spring Boot, AWS, and LocalStack in Action
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 June 20. Don’t forget to check out our archive of past JAM issues for any articles you might have missed!