📄️ Introduction
What Java is, how the JDK/JRE/JVM relate, installing the JDK, compiling and running your first program, and choosing an IDE.
📄️ Variables & Types
Learn Java's primitive types, String basics, type casting, var, final, arithmetic, comparison, and logical operators.
📄️ Control Flow
Learn Java control flow -- if/else, switch expressions, for/while/do-while loops, enhanced for-each, break, continue, and common patterns.
📄️ Methods
Learn Java methods -- defining and calling static methods, parameters, return types, overloading, varargs, scope, and recursion.
📄️ Classes & Objects
Learn Java OOP basics -- classes, objects, constructors, access modifiers, encapsulation, toString, equals/hashCode, static members, and records.
📄️ Inheritance & Interfaces
Learn Java inheritance, method overriding, abstract classes, interfaces, polymorphism, sealed classes, and composition vs inheritance.
📄️ Collections
Learn Java collections -- ArrayList, HashMap, HashSet, iterating, generics, immutable collections, and choosing the right collection.
📄️ Error Handling
Learn Java error handling -- try/catch/finally, checked vs unchecked exceptions, custom exceptions, try-with-resources, and best practices.
📄️ File I/O
Learn Java file I/O -- Path, Files, reading and writing text files, directories, BufferedReader/Writer, and simple CSV parsing.
📄️ Project: CLI Task Manager
Build a complete command-line task manager in Java -- CRUD operations, file-based persistence, input validation, and packaging as a runnable JAR.
📄️ REST API
Build a REST API with Java's built-in HttpServer -- HTTP basics, request handling, JSON serialization, routing, and exposing the task manager over HTTP.
📄️ Deploy: VPS + Nginx
Deploy your Java REST API to a VPS -- installing the JDK, running as a systemd service, configuring nginx as a reverse proxy, and HTTPS with Let's Encrypt.
📄️ Maven
Learn Apache Maven -- project structure, dependency management, building fat JARs, and improving the REST API project with Gson for JSON handling.
📄️ Gradle
Learn Gradle with Kotlin DSL -- project structure, dependency management, building fat JARs, and improving the REST API project with Jackson for JSON handling.
📄️ Streams & Lambdas
Functional Java -- lambda expressions, method references, the Stream API, and practical data processing pipelines.
📄️ Optionals
Avoid NullPointerException with Java's Optional -- creation, unwrapping, chaining, and best practices for handling missing values.
📄️ Testing
Write your first Java tests -- JUnit 5 setup, assertions, test structure, parameterized tests, and testing the Task Manager and REST API.