← Back to catalogBuy now
Java Programming
A complete, from-scratch Java course — syntax to collections to streams — taught the same type-along way as our other courses.
Unlock the full course
Get access to every chapter, instantly.
01Chapter 1: Your First Java Program
Free
02Chapter 2: Variables and Primitive Types
03Chapter 3: Operators and Expressions
04Chapter 4: Strings and Concatenation
05Chapter 5: Reading User Input with Scanner
06Chapter 6: Type Casting
07Chapter 7: Constants with final
08Chapter 8: Comparison and Logical Operators
09Chapter 9: if / else if / else
10Chapter 10: The switch Statement
11Chapter 11: while Loops
12Chapter 12: do-while Loops
13Chapter 13: for Loops
14Chapter 14: break, continue, and Nested Loops
15Chapter 15: Formatting Output
16Chapter 16: Viva Recap — Getting Started & Control Flow
17Chapter 17: Arrays: Declaration and Indexing
18Chapter 18: Iterating Arrays and Common Algorithms
19Chapter 19: Multi-Dimensional Arrays
20Chapter 20: The Arrays Utility Class
21Chapter 21: String Basics and Immutability
22Chapter 22: Common String Methods
23Chapter 23: StringBuilder
24Chapter 24: String Formatting
25Chapter 25: Introducing ArrayList
26Chapter 26: Viva Recap — Arrays & Strings
27Chapter 27: Defining Methods and Return Types
28Chapter 28: Method Overloading
29Chapter 29: Static vs Instance Methods
30Chapter 30: Recursion
31Chapter 31: Varargs
32Chapter 32: Pass-by-Value Semantics in Java
33Chapter 33: Scope and the Call Stack
34Chapter 34: Viva Recap — Methods
35Chapter 35: Classes and Objects
36Chapter 36: Constructors
37Chapter 37: Instance Methods
38Chapter 38: Encapsulation — private Fields and Getters/Setters
39Chapter 39: Static Fields and Methods
40Chapter 40: Inheritance with extends
41Chapter 41: Method Overriding
42Chapter 42: Polymorphism
43Chapter 43: Abstract Classes
44Chapter 44: Interfaces
45Chapter 45: Interface Default Methods
46Chapter 46: The Object Class — toString and equals
47Chapter 47: Access Modifiers and Packages
48Chapter 48: final Classes and Methods
49Chapter 49: Enums
50Chapter 50: Viva Recap — Object-Oriented Programming
51Chapter 51: try/catch Basics
52Chapter 52: Multiple catch Blocks and finally
53Chapter 53: Checked vs Unchecked Exceptions
54Chapter 54: Custom Exception Classes
55Chapter 55: try-with-resources
56Chapter 56: Arrays: Creating and Iterating
57Chapter 57: ArrayList Basics
58Chapter 58: Iterating and Sorting an ArrayList
59Chapter 59: HashMap Basics
60Chapter 60: Iterating a HashMap
61Chapter 61: HashSet Basics
62Chapter 62: The List, Map, and Set Interfaces
63Chapter 63: Generics Basics
64Chapter 64: Autoboxing and Wrapper Classes
65Chapter 65: The Optional Class
66Chapter 66: Viva Recap — Exceptions & Collections
67Chapter 67: Lambda Expressions
68Chapter 68: Functional Interfaces
69Chapter 69: Method References
70Chapter 70: Streams API Basics
71Chapter 71: Streams: reduce and sorted
72Chapter 72: Optional
73Chapter 73: Putting Streams Together
74Chapter 74: Viva Recap — Functional Java & Streams
75Chapter 75: Files and Paths Basics
76Chapter 76: Reading Files with BufferedReader
77Chapter 77: Writing Files with BufferedWriter
78Chapter 78: try-with-resources for Files Revisited
79Chapter 79: Reading and Writing Simple Structured Data
80Chapter 80: Viva Recap — File I/O
81Chapter 81: Threads: Creating with Thread and Runnable
82Chapter 82: Thread Lifecycle and sleep
83Chapter 83: Synchronization and Race Conditions
84Chapter 84: Concurrent Collections
85Chapter 85: Executors and ExecutorService Basics
86Chapter 86: Viva Recap — Concurrency Basics
87Capstone: Library System — Book Class and Adding Books
88Capstone: Library System — Searching and Displaying
89Capstone: Library System — Borrowing and Returning
90Capstone: Library System — Listing All Books
91Capstone: Library System — The Menu Loop