Java Programming Fundamentals — From Zero to Java Developer
Master Java 21 from scratch — syntax, OOP, data structures, and a professional dev setup
Your complete on-ramp to Java programming. Starting from zero — no assumed knowledge — this course walks you through installing JDK 21, configuring a professional IDE, and progressively mastering the Java language: variables, control flow, methods, object-oriented design, Java 21 Records and Sealed Classes, pattern matching, collections, exception handling, and an introduction to Maven and Gradle. By the end, you will be fully equipped to tackle the Enterprise Spring Boot Architecture Blueprint (JAVA-101).
Course Prerequisites
- No prior programming experience required. A computer with internet access is all you need.
Part of Academy Track:
What You Will Master
Curriculum Modules (6 Modules)
Explore the structured module breakdown, lesson outcomes, and practical lab exercises.
Module 1: Environment Setup & First Java Program
6 Lessons • ~5.8 Study Hours (0.58 CEUs)Welcome to Module 1: Environment Setup & First Java Program. Understand the course roadmap, what you will build, how Java fits into the enterprise ecosystem, and why mastering fundamentals before Spring Boot is non-negotiable.. Learn what Java is, how it evolved from Java 1.0 to Java 21 LTS, the JVM model that makes Java platform-independent, and why Java 21 is the definitive version for modern backend development.. Step-by-step installation of OpenJDK 21 (Eclipse Temurin) on all major operating systems, setting JAVA_HOME, verifying the installation, and understanding why sdkman is the professional way to manage JDK versions..
Course Introduction — Zero to Java Developer
Understand the course roadmap, what you will build, how Java fits into the enterprise ecosystem, and why mastering fundamentals before Spring Boot is non-negotiable.
What is Java? History, Versions & Why Java 21
Learn what Java is, how it evolved from Java 1.0 to Java 21 LTS, the JVM model that makes Java platform-independent, and why Java 21 is the definitive version for modern backend development.
Installing JDK 21 — Windows, macOS & Linux
Step-by-step installation of OpenJDK 21 (Eclipse Temurin) on all major operating systems, setting JAVA_HOME, verifying the installation, and understanding why sdkman is the professional way to manage JDK versions.
IDE Setup — IntelliJ IDEA Community Edition & VS Code
Install and configure IntelliJ IDEA Community Edition as your primary Java IDE, including essential plugins, code style settings, and how to create your first Java project with correct JDK 21 configuration.
Your First Java Program — HelloWorld Anatomy
Write, dissect, and fully understand every token of the canonical HelloWorld program — public class, main method signature, System.out.println — and what happens when Java executes it.
Compiling & Running Java — javac, java & the Classpath
Understand the full Java compilation and execution pipeline: source code → bytecode → JVM execution. Master javac and java command-line tools, understand packages and the classpath, and see how an IDE automates this workflow.
Module 2: Java Language Fundamentals
5 Lessons • ~5.1 Study Hours (0.51 CEUs)Welcome to Module 2: Java Language Fundamentals. Learn how Java categorizes every piece of data into a strict type system. Understand the 8 primitive types, reference types, how to declare and initialize variables, and what var (local variable type inference) does in modern Java.. Work through every Java operator category with practical examples: arithmetic (including integer division and modulo), comparison, logical (short-circuit &&, ||), bitwise, assignment shorthand, and the ternary conditional operator.. Deep dive into Java's String type: immutability, the string pool, essential String methods, string concatenation vs StringBuilder, and the Java 21 Text Block feature for clean multi-line string literals..
Variables, Data Types & the Java Type System
Learn how Java categorizes every piece of data into a strict type system. Understand the 8 primitive types, reference types, how to declare and initialize variables, and what var (local variable type inference) does in modern Java.
Operators — Arithmetic, Comparison, Logical & Ternary
Work through every Java operator category with practical examples: arithmetic (including integer division and modulo), comparison, logical (short-circuit &&, ||), bitwise, assignment shorthand, and the ternary conditional operator.
Strings — Literals, the String Class & Java 21 Text Blocks
Deep dive into Java's String type: immutability, the string pool, essential String methods, string concatenation vs StringBuilder, and the Java 21 Text Block feature for clean multi-line string literals.
User Input with Scanner
Learn how to make your Java programs interactive by reading user input from the console using java.util.Scanner. Handle different data types, manage the newline-consumption gotcha, and build a practical interactive CLI program.
Type Casting & Type Conversion
Understand when Java automatically widens types (implicit casting) and when you must explicitly cast (narrowing), the risk of data loss, autoboxing between primitives and wrapper classes, and converting between strings and numbers.
Module 3: Control Flow & Logic
6 Lessons • ~5.8 Study Hours (0.58 CEUs)Welcome to Module 3: Control Flow & Logic. Master Java's primary decision-making construct. Write clean if/else chains, understand the dangling-else problem, use single-statement vs block forms correctly, and avoid common boolean condition mistakes.. Master Java's switch construct in both its classic statement form and the modern switch expression form introduced in Java 14. Understand fall-through, break, the arrow syntax, and when to use switch over if/else chains.. Java 21 finalizes pattern matching for switch — one of the most powerful language features in recent Java history. Learn type patterns, guarded patterns (when clauses), null handling in switch, and how this replaces verbose instanceof chains..
Conditionals — if, else if, else
Master Java's primary decision-making construct. Write clean if/else chains, understand the dangling-else problem, use single-statement vs block forms correctly, and avoid common boolean condition mistakes.
Switch Statements & Switch Expressions (Java 14+/21)
Master Java's switch construct in both its classic statement form and the modern switch expression form introduced in Java 14. Understand fall-through, break, the arrow syntax, and when to use switch over if/else chains.
Pattern Matching with switch (Java 21)
Java 21 finalizes pattern matching for switch — one of the most powerful language features in recent Java history. Learn type patterns, guarded patterns (when clauses), null handling in switch, and how this replaces verbose instanceof chains.
while & do-while Loops
Master condition-controlled loops. Understand when to use while vs do-while, avoid infinite loops, and implement practical patterns like input validation loops and retry mechanisms.
for & for-each Loops
Master Java's counter-controlled for loop and the elegant for-each (enhanced for) loop for iterating collections and arrays. Understand when to use each form, loop variable scope, and iterating with indices vs values.
break, continue & Nested Loops
Take full control of loop execution with break (exit the loop) and continue (skip to the next iteration). Learn labeled break and continue for nested loop control, understand where to apply these patterns, and avoid anti-patterns.
Module 4: Methods & Code Organization
5 Lessons • ~4.9 Study Hours (0.49 CEUs)Welcome to Module 4: Methods & Code Organization. Learn the anatomy of a Java method: access modifier, static vs instance, return type, method name, parameter list, and body. Understand the call stack — how method calls are tracked and how execution returns to the caller.. Go deep on method parameters: pass-by-value semantics for primitives vs pass-by-reference for objects, multiple return values via arrays or records, and method overloading — providing multiple versions of a method with different signatures.. Understand exactly where variables exist in memory: local scope, method scope, class scope, and how the JVM uses the call stack and heap. Avoid the common mistake of accessing variables outside their scope..
Declaring & Calling Methods
Learn the anatomy of a Java method: access modifier, static vs instance, return type, method name, parameter list, and body. Understand the call stack — how method calls are tracked and how execution returns to the caller.
Parameters, Return Types & Method Overloading
Go deep on method parameters: pass-by-value semantics for primitives vs pass-by-reference for objects, multiple return values via arrays or records, and method overloading — providing multiple versions of a method with different signatures.
Variable Scope & the Call Stack
Understand exactly where variables exist in memory: local scope, method scope, class scope, and how the JVM uses the call stack and heap. Avoid the common mistake of accessing variables outside their scope.
Recursion — Concepts & Practical Examples
Understand recursion — the pattern where a method calls itself — from first principles. Identify the base case (termination condition) and recursive case, trace the call stack, and implement classic recursive algorithms: factorial, Fibonacci, binary search.
Varargs & Static Utility Methods
Learn variable-argument methods (varargs) — accepting zero or more arguments of the same type — and how to design static utility method classes that group related functionality without requiring instantiation.
Module 5: Object-Oriented Programming (OOP)
8 Lessons • ~8.6 Study Hours (0.86 CEUs)Welcome to Module 5: Object-Oriented Programming (OOP). Understand the class as a blueprint and objects as instances. Write your first class with fields and a constructor, instantiate objects with new, and understand what happens in memory when objects are created on the heap.. Distinguish instance fields from local variables, write instance methods that operate on an object's own state, and use the this keyword to resolve ambiguity between field names and parameter names, and to call one constructor from another.. Implement encapsulation — hiding internal state and exposing only controlled access. Master Java's four access modifiers, write proper getters and setters, and understand when setters are harmful and should be replaced by Records or builder patterns..
Classes, Objects & Constructors
Understand the class as a blueprint and objects as instances. Write your first class with fields and a constructor, instantiate objects with new, and understand what happens in memory when objects are created on the heap.
Instance Variables, Methods & the `this` Keyword
Distinguish instance fields from local variables, write instance methods that operate on an object's own state, and use the this keyword to resolve ambiguity between field names and parameter names, and to call one constructor from another.
Encapsulation — Access Modifiers, Getters & Setters
Implement encapsulation — hiding internal state and exposing only controlled access. Master Java's four access modifiers, write proper getters and setters, and understand when setters are harmful and should be replaced by Records or builder patterns.
Java 21 Records — Immutable Data Classes
Java 21 Records eliminate the boilerplate of data-carrier classes. One line replaces constructor + fields + getters + equals + hashCode + toString. Learn to declare records, add compact constructors for validation, implement interfaces with records, and understand when records are the right choice.
Inheritance & the `extends` Keyword
Model 'is-a' relationships with inheritance. Extend a parent class, call the parent constructor with super(), override methods, and understand the Object class at the root of Java's class hierarchy. Learn why deep inheritance hierarchies are an anti-pattern.
Polymorphism — Overriding & instanceof Pattern Matching
Polymorphism lets you write code against a supertype that works for any subtype. Master method overriding with @Override, dynamic dispatch, the Liskov Substitution Principle, and Java 16+ instanceof pattern matching that eliminates the cast-after-instanceof pattern.
Abstract Classes & Interfaces
Design contracts with abstract classes and interfaces. Understand the difference: abstract classes for shared implementation, interfaces for capability contracts. Master default methods in interfaces (Java 8+), functional interfaces, and when to use which.
Sealed Classes & Interfaces (Java 17+/21)
Sealed classes and interfaces are Java 17+'s answer to controlled type hierarchies. Restrict which classes can extend or implement a sealed type, combine with records and pattern matching for exhaustive switch dispatch, and model domain types like Result, Shape, or Event with precision.
Module 6: Data Structures, Collections & Foundations
6 Lessons • ~6.4 Study Hours (0.64 CEUs)Welcome to Module 6: Data Structures, Collections & Foundations. Arrays are Java's fundamental fixed-size data structure. Learn to declare, initialize, and iterate single-dimensional and multi-dimensional arrays, use Arrays utility methods, and understand why arrays have limitations that led to the Collections Framework.. The Java Collections Framework provides dynamic, resizable data structures. Master ArrayList as the go-to List implementation, understand the List interface contract, and learn when LinkedList's deque operations make it preferable.. Maps and sets are essential data structures for lookups, frequency counting, and uniqueness enforcement. Master HashMap for key-value storage, iterate over entries, and use HashSet to efficiently eliminate duplicates and test membership..
Arrays — Declaration, Indexing & Iteration
Arrays are Java's fundamental fixed-size data structure. Learn to declare, initialize, and iterate single-dimensional and multi-dimensional arrays, use Arrays utility methods, and understand why arrays have limitations that led to the Collections Framework.
ArrayList & LinkedList
The Java Collections Framework provides dynamic, resizable data structures. Master ArrayList as the go-to List implementation, understand the List interface contract, and learn when LinkedList's deque operations make it preferable.
HashMap & HashSet
Maps and sets are essential data structures for lookups, frequency counting, and uniqueness enforcement. Master HashMap for key-value storage, iterate over entries, and use HashSet to efficiently eliminate duplicates and test membership.
Generics Basics
Generics make Java's type system work for you by catching type errors at compile time rather than runtime. Understand type parameters, how Collections use generics, write your first generic method and generic class, and learn the basics of bounded type parameters.
Exception Handling — try, catch, finally, throw
Robust Java programs handle errors gracefully. Master the try-catch-finally structure, understand checked vs unchecked exceptions, throw your own exceptions, write custom exception classes, and use try-with-resources for automatic cleanup.
Introduction to Build Tools — Maven & Gradle
No real Java project uses raw javac for long. Maven and Gradle automate compilation, dependency management, testing, and packaging. Learn the Maven project structure, the pom.xml descriptor, add dependencies from Maven Central, and understand the Gradle equivalent — building your first project the same way Spring Boot does.
Enterprise Java & Spring Boot Progression
Continue advancing through the sequential curriculum stages of this academy track: