<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Java on AI VOID</title><link>https://ai-blog.noorshomelab.dev/categories/java/</link><description>Recent content in Java on AI VOID</description><generator>Hugo</generator><language>en</language><lastBuildDate>Thu, 04 Dec 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://ai-blog.noorshomelab.dev/categories/java/index.xml" rel="self" type="application/rss+xml"/><item><title>Chapter 1: Setting Up Your Java 25 Development Environment</title><link>https://ai-blog.noorshomelab.dev/java-mini-projects/ch01-java-25-environment/</link><pubDate>Thu, 04 Dec 2025 00:00:00 +0000</pubDate><guid>https://ai-blog.noorshomelab.dev/java-mini-projects/ch01-java-25-environment/</guid><description>&lt;h2 id="chapter-1-setting-up-your-java-25-development-environment"&gt;Chapter 1: Setting Up Your Java 25 Development Environment&lt;/h2&gt;
&lt;p&gt;Welcome to the first chapter of our comprehensive Java development journey! In this chapter, we will lay the essential groundwork for all subsequent projects by setting up a robust, production-ready Java 25 development environment. This foundational step is crucial as it ensures you have all the necessary tools and configurations in place to write, build, test, and deploy modern Java applications efficiently and effectively.&lt;/p&gt;</description></item><item><title>Chapter 7: Graceful Handling: Exceptions</title><link>https://ai-blog.noorshomelab.dev/java-mastery-2025/chapter-7-exceptions/</link><pubDate>Thu, 04 Dec 2025 00:00:00 +0000</pubDate><guid>https://ai-blog.noorshomelab.dev/java-mastery-2025/chapter-7-exceptions/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Welcome to Chapter 7! So far, our Java programs have been mostly happy-path scenarios, where everything goes according to plan. But in the real world, things rarely go perfectly. What happens if a file isn&amp;rsquo;t found, a network connection drops, or a user enters text where a number is expected? These unexpected events are called &lt;strong&gt;exceptions&lt;/strong&gt;, and knowing how to handle them gracefully is a hallmark of a robust, production-ready application.&lt;/p&gt;</description></item><item><title>Chapter 9: Flexible Code: Generics</title><link>https://ai-blog.noorshomelab.dev/java-mastery-2025/chapter-9-generics/</link><pubDate>Thu, 04 Dec 2025 00:00:00 +0000</pubDate><guid>https://ai-blog.noorshomelab.dev/java-mastery-2025/chapter-9-generics/</guid><description>&lt;h2 id="chapter-9-flexible-code-generics"&gt;Chapter 9: Flexible Code: Generics&lt;/h2&gt;
&lt;p&gt;Welcome back, intrepid Java adventurer! In our journey so far, we&amp;rsquo;ve learned how to build classes, create objects, and manage collections of data. You&amp;rsquo;re getting good at writing code that &lt;em&gt;works&lt;/em&gt;. But what if we told you there&amp;rsquo;s a way to write code that&amp;rsquo;s not just functional, but also incredibly flexible, robust, and safe?&lt;/p&gt;
&lt;p&gt;That&amp;rsquo;s precisely what Generics allow us to do! In this chapter, we&amp;rsquo;re going to dive deep into Generics, a powerful feature introduced in Java 5, which allows you to write classes, interfaces, and methods that operate on objects of various types while providing compile-time type safety. Think of it as writing a blueprint that can be adapted to handle different materials without having to redraw the entire plan each time. By the end of this chapter, you&amp;rsquo;ll understand why Generics are indispensable for modern Java development, helping you prevent common errors and create highly reusable components.&lt;/p&gt;</description></item><item><title>Chapter 12: Inspecting Code: Reflection &amp;amp; Annotations</title><link>https://ai-blog.noorshomelab.dev/java-mastery-2025/chapter-12-reflection-annotations/</link><pubDate>Thu, 04 Dec 2025 00:00:00 +0000</pubDate><guid>https://ai-blog.noorshomelab.dev/java-mastery-2025/chapter-12-reflection-annotations/</guid><description>&lt;p&gt;Welcome back, aspiring Java master! So far, we&amp;rsquo;ve learned how to write Java code that tells the computer exactly what to do. We&amp;rsquo;ve defined classes, created objects, and controlled their behavior. But what if your code needed to &lt;em&gt;look at itself&lt;/em&gt;? What if it needed to understand its own structure, or even change its behavior, while it&amp;rsquo;s running? Sounds a bit like magic, right?&lt;/p&gt;
&lt;p&gt;In this chapter, we&amp;rsquo;re going to pull back the curtain on two incredibly powerful, yet often misunderstood, Java features: &lt;strong&gt;Reflection&lt;/strong&gt; and &lt;strong&gt;Annotations&lt;/strong&gt;. These tools allow your programs to inspect and manipulate their own structure, and to attach useful metadata directly to your code. They are the backbone of many advanced Java frameworks (like Spring, Hibernate, and JUnit), enabling features like dependency injection, object-relational mapping, and sophisticated testing. Get ready to give your Java applications X-ray vision and sticky notes!&lt;/p&gt;</description></item><item><title>Chapter 13: Structuring Large Applications: Java Modules (Project Jigsaw)</title><link>https://ai-blog.noorshomelab.dev/java-mastery-2025/chapter-13-java-modules/</link><pubDate>Thu, 04 Dec 2025 00:00:00 +0000</pubDate><guid>https://ai-blog.noorshomelab.dev/java-mastery-2025/chapter-13-java-modules/</guid><description>&lt;h2 id="introduction-building-with-blocks--understanding-java-modules"&gt;Introduction: Building with Blocks – Understanding Java Modules&lt;/h2&gt;
&lt;p&gt;Welcome back, future Java architect! Up until now, we&amp;rsquo;ve mostly worked with individual &lt;code&gt;.java&lt;/code&gt; files, then grouped them into packages, and finally bundled them into JARs. This approach works wonderfully for smaller projects, but as applications grow, they can become behemoths of tangled dependencies, making them hard to manage, understand, and secure.&lt;/p&gt;
&lt;p&gt;Enter &lt;strong&gt;Java Modules&lt;/strong&gt;, also known as &lt;strong&gt;Project Jigsaw&lt;/strong&gt;, a revolutionary feature introduced in Java 9 and refined in subsequent versions, including our current focus, &lt;strong&gt;Java 25&lt;/strong&gt;. Modules provide a powerful new way to structure your applications, bringing strong encapsulation, reliable configuration, and improved maintainability. Think of it like building with LEGOs: instead of a pile of bricks, you have well-defined, interconnected blocks, each with a clear purpose and explicit connections to other blocks.&lt;/p&gt;</description></item><item><title>Chapter 14: Comprehensive Unit &amp;amp; Integration Testing with JUnit 5</title><link>https://ai-blog.noorshomelab.dev/java-mini-projects/ch14-unit-integration-testing/</link><pubDate>Thu, 04 Dec 2025 00:00:00 +0000</pubDate><guid>https://ai-blog.noorshomelab.dev/java-mini-projects/ch14-unit-integration-testing/</guid><description>&lt;h2 id="chapter-14-comprehensive-unit--integration-testing-with-junit-5"&gt;Chapter 14: Comprehensive Unit &amp;amp; Integration Testing with JUnit 5&lt;/h2&gt;
&lt;p&gt;Welcome to Chapter 14! In this crucial phase of our project development, we shift our focus to ensuring the reliability and robustness of our applications through rigorous testing. We&amp;rsquo;ll dive deep into unit and integration testing, leveraging the power of JUnit 5, the de facto standard for testing in Java. This chapter is not just about writing tests; it&amp;rsquo;s about adopting a testing mindset that leads to more stable, maintainable, and production-ready code.&lt;/p&gt;</description></item><item><title>Chapter 15: Enterprise Java Evolution: From Javax to Jakarta EE</title><link>https://ai-blog.noorshomelab.dev/java-mastery-2025/chapter-15-jakarta-ee-evolution/</link><pubDate>Thu, 04 Dec 2025 00:00:00 +0000</pubDate><guid>https://ai-blog.noorshomelab.dev/java-mastery-2025/chapter-15-jakarta-ee-evolution/</guid><description>&lt;h2 id="chapter-15-enterprise-java-evolution-from-javax-to-jakarta-ee"&gt;Chapter 15: Enterprise Java Evolution: From Javax to Jakarta EE&lt;/h2&gt;
&lt;p&gt;Welcome to Chapter 15, future Java enterprise developers! So far, we&amp;rsquo;ve focused on &amp;ldquo;Standard Edition&amp;rdquo; Java (Java SE), building foundational skills that are crucial for any Java programmer. But what happens when you need to build applications that serve thousands or millions of users, handle complex transactions, integrate with various systems, and run reliably 24/7? That&amp;rsquo;s where &lt;strong&gt;Enterprise Java&lt;/strong&gt; comes in!&lt;/p&gt;</description></item><item><title>Building AI Agents in Java with Spring Boot: A Comprehensive Guide</title><link>https://ai-blog.noorshomelab.dev/posts/ai-agents-java-spring-boot-guide/</link><pubDate>Fri, 03 Oct 2025 00:00:00 +0000</pubDate><guid>https://ai-blog.noorshomelab.dev/posts/ai-agents-java-spring-boot-guide/</guid><description>&lt;h1 id="building-ai-agents-in-java-with-spring-boot-a-comprehensive-guide"&gt;Building AI Agents in Java with Spring Boot: A Comprehensive Guide&lt;/h1&gt;
&lt;p&gt;Welcome, aspiring AI agent builder! This document is your complete guide to understanding and creating intelligent AI agents using the powerful combination of Java and Spring Boot. Whether you&amp;rsquo;re entirely new to AI or looking to leverage your Java skills in this exciting field, this guide will take you from the very basics to building sophisticated agentic systems.&lt;/p&gt;
&lt;p&gt;We&amp;rsquo;ll focus on practical, real-world examples using leading Java AI frameworks like &lt;strong&gt;Spring AI&lt;/strong&gt; and &lt;strong&gt;Google&amp;rsquo;s Agent Development Kit (ADK) for Java&lt;/strong&gt;. By the end, you&amp;rsquo;ll not only grasp the theory but also have hands-on experience in building agents that can reason, plan, and interact with the world.&lt;/p&gt;</description></item></channel></rss>