Complete Java Learning Guide: Beginner to Advanced
This page is the home base for a long Java series. Each chapter is meant to be its own article: one main idea, slow explanation, examples, mistakes, habits, and a tiny exercise.
All 151 chapters of this guide are on the blog—Parts 1–17, from first programs through Spring Boot, advanced JVM topics, security and production, and a closing roadmap (Chapters 1–151). The order is fixed; titles may still be tweaked slightly over time. Use this index to see the full arc, then circle back when your projects need depth. Depth beats speed.
Beginner tip: bookmark this page. When a new chapter goes live, open it from here so you do not skip foundations.
Published chapters (links)
- Chapter 1: What is Java?
- Chapter 2: How Java Works
- Chapter 3: Java Setup
- Chapter 4: First Java Program
- Chapter 5: Variables in Java
- Chapter 6: Data Types in Java
- Chapter 7: Operators in Java
- Chapter 8: Type Casting in Java
- Chapter 9: User Input in Java
- Chapter 10: if Statement
- Chapter 11: if-else Statement
- Chapter 12: else-if Ladder
- Chapter 13: Nested if
- Chapter 14: switch Statement
- Chapter 15: for Loop
- Chapter 16: while Loop
- Chapter 17: do-while Loop
- Chapter 18: break Statement
- Chapter 19: continue Statement
- Chapter 20: Arrays in Java
- Chapter 21: One-Dimensional Array
- Chapter 22: Two-Dimensional Array
- Chapter 23: String in Java
- Chapter 24: String Methods
- Chapter 25: StringBuilder
- Chapter 26: StringBuffer
- Chapter 27: String vs StringBuilder vs StringBuffer
- Chapter 28: Methods in Java
- Chapter 29: Method Parameters
- Chapter 30: Return Type
- Chapter 31: Method Overloading
- Chapter 32: Recursion
- Chapter 33: Class and Object
- Chapter 34: Constructor
- Chapter 35: this Keyword
- Chapter 36: static Keyword
- Chapter 37: final Keyword
- Chapter 38: Encapsulation
- Chapter 39: Inheritance
- Chapter 40: Polymorphism
- Chapter 41: Method Overriding
- Chapter 42: Abstraction
- Chapter 43: Abstract Class
- Chapter 44: Interface
- Chapter 45: Abstract Class vs Interface
- Chapter 46: Access Modifiers
- Chapter 47: What is Exception?
- Chapter 48: try-catch
- Chapter 49: finally Block
- Chapter 50: throw Keyword
- Chapter 51: throws Keyword
- Chapter 52: Checked vs Unchecked Exception
- Chapter 53: Custom Exception
- Chapter 54: What is Collection Framework?
- Chapter 55: List Interface
- Chapter 56: ArrayList
- Chapter 57: LinkedList
- Chapter 58: ArrayList vs LinkedList
- Chapter 59: Set Interface
- Chapter 60: HashSet
- Chapter 61: LinkedHashSet
- Chapter 62: TreeSet
- Chapter 63: Map Interface
- Chapter 64: HashMap
- Chapter 65: REST API with PostgreSQL (Core Java)
- Chapter 66: LinkedHashMap
- Chapter 67: TreeMap
- Chapter 68: Queue
- Chapter 69: PriorityQueue
- Chapter 70: Iterator
- Chapter 71: Comparable and Comparator
- Chapter 72: What are Generics?
- Chapter 73: Generic Class
- Chapter 74: Generic Method
- Chapter 75: Bounded Type Parameter
- Chapter 76: Lambda Expression
- Chapter 77: Functional Interface
- Chapter 78: Predicate
- Chapter 79: Function
- Chapter 80: Consumer
- Chapter 81: Supplier
- Chapter 82: Stream API
- Chapter 83: filter
- Chapter 84: map
- Chapter 85: collect
- Chapter 86: reduce
- Chapter 87: Optional
- Chapter 88: Method Reference
- Chapter 89: Date and Time API
- Chapter 90: File Handling Introduction
- Chapter 91: Reading File
- Chapter 92: Writing File
- Chapter 93: BufferedReader
- Chapter 94: Files Class
- Chapter 95: Try-with-resources
- Chapter 96: What is Thread?
- Chapter 97: Thread Class
- Chapter 98: Runnable Interface
- Chapter 99: Thread Lifecycle
- Chapter 100: synchronized Keyword
- Chapter 101: volatile Keyword
- Chapter 102: ExecutorService
- Chapter 103: Callable and Future
- Chapter 104: CompletableFuture
- Chapter 105: What is JDBC?
- Chapter 106: JDBC Driver
- Chapter 107: Connection
- Chapter 108: PreparedStatement
- Chapter 109: ResultSet
- Chapter 110: CRUD with JDBC
- Chapter 111: SQL Injection Prevention
- Chapter 112: What is API?
- Chapter 113: REST API
- Chapter 114: HTTP Methods
- Chapter 115: HTTP Status Codes
- Chapter 116: JSON Request and Response
- Chapter 117: Building API with Java
- Chapter 118: What is Spring Boot?
- Chapter 119: Spring Boot Project Structure
- Chapter 120: Controller Layer
- Chapter 121: Service Layer
- Chapter 122: Repository Layer
- Chapter 123: Entity
- Chapter 124: DTO
- Chapter 125: Dependency Injection
- Chapter 126: Request Validation
- Chapter 127: Global Exception Handling
- Chapter 128: REST API CRUD Example
- Chapter 129: Reflection
- Chapter 130: Serialization
- Chapter 131: Records
- Chapter 132: Sealed Classes
- Chapter 133: Java Modules
- Chapter 134: ClassLoader
- Chapter 135: JVM Memory Management
- Chapter 136: Garbage Collection
- Chapter 137: Authentication vs Authorization
- Chapter 138: JWT Basics
- Chapter 139: Password Hashing
- Chapter 140: Input Validation
- Chapter 141: CORS
- Chapter 142: Logging
- Chapter 143: API Versioning
- Chapter 144: Pagination
- Chapter 145: Rate Limiting
- Chapter 146: Swagger/OpenAPI
- Chapter 147: Testing with JUnit
- Chapter 148: Mockito
- Chapter 149: Clean Code in Java
- Chapter 150: Production-Level Java Project Structure
- Chapter 151: Java Roadmap and Practice Projects
Full chapter outline (1–151)
Below is the full roadmap. Every chapter is published (see links above); titles may be tweaked slightly over time, but the order and ideas stay the same.
Part 1: Java introduction
- What is Java? (published — see link above)
- How Java Works (published)
- Java Setup (published)
- First Java Program (published)
Part 2: Java basics
- Variables in Java (published — see link above)
- Data Types in Java (published)
- Operators in Java (published)
- Type Casting in Java (published)
- User Input in Java (published)
Part 3: Control flow
- if Statement (published — see link above)
- if-else Statement (published)
- else-if Ladder (published)
- Nested if (published)
- switch Statement (published)
- for Loop (published)
- while Loop (published)
- do-while Loop (published)
- break Statement (published)
- continue Statement (published)
Part 4: Arrays and strings
- Arrays in Java (published — see link above)
- One Dimensional Array (published)
- Two Dimensional Array (published)
- String in Java (published)
- String Methods (published)
- StringBuilder (published)
- StringBuffer (published)
- String vs StringBuilder vs StringBuffer (published)
Part 5: Methods
- Methods in Java (published — see link above)
- Method Parameters (published)
- Return Type (published)
- Method Overloading (published)
- Recursion (published)
Part 6: Object-oriented programming
- Class and Object (published — see link above)
- Constructor (published)
- this Keyword (published)
- static Keyword (published)
- final Keyword (published)
- Encapsulation (published)
- Inheritance (published)
- Polymorphism (published)
- Method Overriding (published)
- Abstraction (published)
- Abstract Class (published)
- Interface (published)
- Abstract Class vs Interface (published)
- Access Modifiers (published)
Part 7: Exception handling
- What is Exception? (published)
- try-catch (published)
- finally Block (published)
- throw Keyword (published)
- throws Keyword (published)
- Checked vs Unchecked Exception (published)
- Custom Exception (published)
Part 8: Collections framework
- What is Collection Framework? (published)
- List Interface (published)
- ArrayList (published)
- LinkedList (published)
- ArrayList vs LinkedList (published)
- Set Interface (published)
- HashSet (published)
- LinkedHashSet (published)
- TreeSet (published)
- Map Interface (published)
- HashMap (published)
- REST API with PostgreSQL (Core Java) (published)
- LinkedHashMap (published)
- TreeMap (published)
- Queue (published)
- PriorityQueue (published)
- Iterator (published)
- Comparable and Comparator (published)
Part 9: Generics
- What are Generics? (published)
- Generic Class (published)
- Generic Method (published)
- Bounded Type Parameter (published)
Part 10: Java 8 and modern Java
- Lambda Expression (published)
- Functional Interface (published)
- Predicate (published)
- Function (published)
- Consumer (published)
- Supplier (published)
- Stream API (published)
- filter (published)
- map (published)
- collect (published)
- reduce (published)
- Optional (published)
- Method Reference (published)
- Date and Time API (published)
Part 11: File handling
- File Handling Introduction (published)
- Reading File (published)
- Writing File (published)
- BufferedReader (published)
- Files Class (published)
- Try-with-resources (published)
Part 12: Multithreading
- What is Thread? (published)
- Thread Class (published)
- Runnable Interface (published)
- Thread Lifecycle (published)
- synchronized Keyword (published)
- volatile Keyword (published)
- ExecutorService (published)
- Callable and Future (published)
- CompletableFuture (published)
Part 13: JDBC and database
- What is JDBC? (published)
- JDBC Driver (published)
- Connection (published)
- PreparedStatement (published)
- ResultSet (published)
- CRUD with JDBC (published)
- SQL Injection Prevention (published)
Part 14: APIs with Java
- What is API? (published)
- REST API (published)
- HTTP Methods (published)
- HTTP Status Codes (published)
- JSON Request and Response (published)
- Building API with Java (published)
Part 15: Spring Boot
- What is Spring Boot? (published)
- Spring Boot Project Structure (published)
- Controller Layer (published)
- Service Layer (published)
- Repository Layer (published)
- Entity (published)
- DTO (published)
- Dependency Injection (published)
- Request Validation (published)
- Global Exception Handling (published)
- REST API CRUD Example (published)
Part 16: Advanced Java
- Reflection (published)
- Serialization (published)
- Records (published)
- Sealed Classes (published)
- Java Modules (published)
- ClassLoader (published)
- JVM Memory Management (published)
- Garbage Collection (published)
Part 17: Security and production
- Authentication vs Authorization (published)
- JWT Basics (published)
- Password Hashing (published)
- Input Validation (published)
- CORS (published)
- Logging (published)
- API Versioning (published)
- Pagination (published)
- Rate Limiting (published)
- Swagger/OpenAPI (published)
- Testing with JUnit (published)
- Mockito (published)
- Clean Code in Java (published)
- Production-Level Java Project Structure (published)
- Java Roadmap and Practice Projects (published)
How to study this series
Read in order for your first pass. On the second pass, jump only to chapters where your job or project needs depth.
Always type the code yourself. Copy-paste hides typos you would have made—and those typos teach you how the compiler talks back.