Java Foundations for Spring Backend
Use this track when the Spring book assumes Java you do not yet own.
Spring is ordinary Java objects plus a container. Interviews start there. Weak answers on references, final, encapsulation, or interfaces show up before anyone asks about @Autowired.
The lessons keep the book style:
- mental models
- small code proofs
- common traps
- practice questions and answers
- memory sentences
- a Spring connection so the idea is not abstract
This is not a syntax-from-zero course. You should already be able to write a class, a method, and a main. If that is still new, install a JDK, write one class, run it, then start Week 1 Day 1.
How this sits next to the rest of the site
- Java Foundations (this track) — types, memory, OOP, exceptions, through modern Java
- Spring book — IoC, Boot, MVC, data, security
- Interview bank — speak the model out loud
- Certification track — exam revision (Spring only)
OOP is the spine of Weeks 2 and 3. Week 1 is the memory model those weeks need: stack, heap, references, immutability.
Start here
- Java curriculum — full map, including later weeks
- Week 1 Day 1 — JVM, Stack, and Heap
Weeks available now
| Week | Theme |
|---|---|
| Week 1 | Types, stack vs heap, pass-by-value, immutability, records |
| Week 2 | Class vs object, encapsulation, constructors, inheritance, Object |
| Week 3 | Polymorphism, interfaces, composition, SOLID, how Spring uses OOP |
| Week 4 | Checked vs unchecked, try-with-resources, domain translation, REST mapping |
| Week 5 | Type parameters, erasure, PECS, Optional |
| Week 6 | List/Set/Map, HashMap buckets, fail-fast, Comparable vs Comparator |
| Week 7 | Lambdas, stream pipelines, flatMap, collect, when a loop is clearer |
| Week 8 | Threads, visibility, executors, @Async and @Transactional |
| Week 9 | Java 17/21, records, sealed types, switch, virtual threads |
The nine-week map is complete. After Week 3 you can already enter Spring book Week 1; finish Weeks 4–9 so interviews on exceptions, generics, collections, streams, concurrency, and modern Java are not a gap.