IntelliJ IDEA
IntelliJ IDEA – the IDE for Professional Development in Java and Kotlin
Java Annotated Monthly – July 2025
Welcome to the July edition of Java Annotated Monthly! This issue is packed with fresh articles, helpful tips, and ideas to keep you inspired and motivated in your work.
We’re excited to feature Aicha Laafia, a Java engineer passionate about writing clean, green code and empowering women in tech. She’ll share how sustainable coding practices improve performance and reduce energy usage, and why mental well-being deserves just as much attention in our field.
You’ll also get a first look at the new Spring Debugger in IntelliJ IDEA – a powerful tool that reveals what’s really going on inside your Spring Boot app and helps you fix issues faster.
As always, we’ve gathered insightful notes on AI, upcoming events in July, and a few tech-adjacent thoughts to spark reflection and curiosity. Let’s dive in! 🚀
Featured Content
I’m excited to share what I’m passionate about: making Java apps not just clean and fast, but also greener and more efficient.
Clean code keeps you sane at 2am. Green code keeps your infrastructure costs sane at scale. It’s also more interesting! You have to squeeze performance out of what you have with no sloppy code hiding behind overkill hardware.
One of the biggest sources of wasted resources is start-up and warm-up time. Microservices and serverless functions spin up and down constantly. Every millisecond wasted during startup is wasted CPU cycles and energy.
This is why I would love to introduce one of JDK 24’s game-changing features, Ahead-of-Time Class Loading (JEP 483). It preloads and links classes before runtime, slashing startup and warm-up lag. Faster startup means microservices waste fewer CPU cycles, directly cutting energy use in cloud-native environments. I’ve covered this in detail in my article JDK 24: Faster, Smarter, and Ready for the Future.
Pair this with GraalVM 24.2’s native image capabilities – near-instant start-up and a low memory footprint – and you get serious energy savings and better performance.
Looking ahead to JDK 25 and beyond, they’re adding some solid improvements for performance and efficiency:
JEP 514 and JEP 515 bring better ergonomics and profiling for Ahead-of-Time compilation, making startup faster and CPU use smarter. I am super excited about JEP 521, which enhances Shenandoah GC with generational collection, cutting pause times and improving memory management.
If you want to dive deeper into practical green coding with Java, check out my Green Programming 101 article series. If video is more your thing, here’s my recent live talk at vJUG: How to Build Sustainable Java Applications.
Before I say goodbye, remember there’s one resource we often overlook: ourselves. Just like we monitor and optimize CPU and memory, it’s crucial to monitor your mental health and watch for burnout. It’s a hidden struggle many developers face. If you want to learn more, check out my article on The Duck Syndrome: A Hidden Struggle for IT Professionals.
Enjoy this month’s Java Annotated Monthly. 🚀
Java News
Check out the most recent news from the Java world:
- Java News RoundUp 1, 2, 3, 4
- Java 25 Encodes PEM – Inside Java Newscast #93
- What’s new for JFR in JDK 25
See what JEPs are planned for Java 25:
- Java 25 Brings 18 JEPs Inside Java Newscast #92
- JEP targeted to JDK 25: 470: PEM Encodings of Cryptographic Objects (Preview)
- JEP targeted to JDK 25: 508: Vector API (10th Incubator)
- JEP targeted to JDK 25: 507: Primitive Types in Patterns, instanceof, and switch (3rd Preview)
- JEP targeted to JDK 25: 514: Ahead-of-Time Command-Line Ergonomics
- JEP targeted to JDK 25: 506: Scoped Values
- Java 25 Integrates Compact Object Headers with JEP 519
Java Tutorials and Tips
Learn new things and enjoy unique insights from industry experts:
- Inside Java’s Language Renaissance
- Key Java Language Updates From 2020 to 2025
- Getting the Most of Your Java Applications – The Value of Java for Enterprises
- Advanced Java Garbage Collection Concepts: Weak References, Finalization, and Memory Leaks
- Clean and Modular Java: A Hexagonal Architecture Approach
- Flexible Constructor Bodies: The End of Telescoping Builders? A Preview Feature from Project Amber
- STF Milestone 4: Parameterized test classes
- How to Configure Mockito Agent for Java 21+ Without Warning
- Java’s Structured Concurrency: Finally Finding Its Footing
- Java Concurrency Best Practices for MongoDB
- Java, What’s Old? Part I: Collections
- How to Identify the Underlying Causes of Connection Timeout Errors for MongoDB With Java
- How ReadyNow Improves Java Warmup Time
- Beyond Objects and Functions: Exploring Data-Oriented Programming
Kotlin Corner
Everything you might have missed about Kotlin in June:
- KotlinConf 2025 Talks
- Kodee’s Kotlin Roundup: A Carefully Curated June Edition
- Get Answers to Your KMP Questions
AI
Learn more about the most recent AI news, innovations, problems, and predictions:
- Agentic Coding Recommendations
- AI Agent Delegation – You Can’t Delegate What You Don’t Control
- Deploy JetBrains Mellum Your Way: Now Available via NVIDIA NIM
- AI-Powered Learning, Part 2: Get Unstuck With AI Hints in Python and Kotlin Tasks
- Software Developers on AI: Insights and Opportunities
- What to Pack for Your GenAI Adventure
- Context Collection Competition by JetBrains and Mistral AI
- Expanding ADK Java LLM coverage with LangChain4j
- Spotting Image Differences in Visual Software Testing with AI
- This AI Agent Should Have Been a SQL Query
- Midjourney Debuts V1 AI Video Model
- Foojay Podcast #74: JCON Report, Part 3 – AI, ChatGPT, LLM, ML, RAG, MCP, GenAI, and more!
- Will AI Agents Force Us to Finally Do Auth Right?
- My First Open Source AI Generated Library
- LLMs bring new nature of abstraction
Languages, Frameworks, Libraries, and Technologies
Get to know programming technologies and frameworks better:
- This Week in Spring 1, 2, 3, 4
- Demystifying Spring Boot With Spring Debugger
- Spring Boot + Kafka Streams: Event Routing & Testing
- MongoDB Aggregation Framework: A Beginner’s Guide
- A Bootiful Podcast: IntelliJ IDEA lead Aleksey Stukalov
- Nikolaos Vasiloglou on Knowledge Graphs and Graph RAG
- Intro to RAG: Foundations of Retrieval Augmented Generation, part 2
- Rust: A Productive Language for Writing Database Applications
- Your Complete Guide to Diagnose Slow Queries in MongoDB
- Performance Best Practice No. 1: Optimize Database Operations
Conferences and Events
Visit these events in person or online in July:
- DevBcn – Barcelona, Spain, July 8-10
- WeAreDevelopers World Congress – Berlin, Germany, July 9-11
- Java Forum Stuttgart – Stuttgart, Germany, July 10
- JConf Dominicana – Santo Domingo, Dominican Republic, July 18-19
Culture and Community
Take some time to think about the non-tech topics that are of significance to the tech community at the moment:
- In Praise of “Normal” Engineers
- Developer Joy: A Better Way to Boost Developer Productivity
- How to Develop Your Skills to Become a Principal Engineer
- Humans in the Loop: Engineering Leadership in a Chaotic Industry
- Productivity Through Play: Why Messing Around Makes Better Software Engineers
- How to Catch the Good Guys: My Learnings on Recruiting IT Security Professionals One Year In
- Business Advice Plagued by Survivor Bias
And Finally…
Don’t miss the latest updates from the IntelliJ IDEA team:
- Demystifying Spring Boot With Spring Debugger
- K2 Mode Takes Off: High Adoption, Fewer Bugs, and Major Improvements in 2025.1
- Text Blocks in Java: Perfect for Multiline Strings
- Migrate from Cursor to IntelliJ IDEA
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 July 20. Don’t forget to check out our archive of past JAM issues for any articles you might have missed!