Java & Spring Boot
11 lessonsJVM behavior, Spring internals, concurrency, and production troubleshooting.
Lesson outline
- 1
Foundations · beginner · 9 min
Java Memory Model Foundations: Visibility, Ordering, and Safe PublicationBuild the mental model behind happens-before, volatile fields, monitors, and safely publishing objects between threads.
- 2
Core concepts · intermediate · 7 min
ConcurrentHashMap Internals: Coordinating Updates Without One Global LockUnderstand how modern ConcurrentHashMap combines volatile reads, CAS, and narrow bin-level locking, and where its guarantees stop.
- 3
Applied patterns · intermediate · 9 min
Spring Transaction Boundaries: Where to Commit and When to SplitA transaction is only as good as the boundary you choose. Learn how service-layer design, isolation levels, and idempotent writes affect correctness in Java systems.
- 4
Production practice · advanced · 11 min
JVM Memory Errors: Diagnose Heap Exhaustion, StackOverflow, and LeaksSeparate heap pressure from thread-stack failure, collect the right evidence, and fix the retention path rather than masking symptoms.
- 5
Deep dives · advanced · 10 min
Java Thread Dumps: Find Deadlocks, Starvation, and Lock ContentionUse repeated thread dumps and thread-state patterns to distinguish deadlocks from slow dependencies, starvation, and excessive synchronization.
- 6
Deep dives · intermediate · 9 min
Java equals and hashCode: Fix Broken HashMap and HashSet LookupsDiagnose collection bugs caused by inconsistent equality, mutable keys, inheritance, and accidental identity comparisons.
- 7
Deep dives · intermediate · 10 min
Java Exception Debugging: Trace the Root Cause and Fix the BoundaryA practical method for investigating wrapped exceptions, null failures, resource exhaustion, and misleading catch blocks in JVM services.
- 8
Deep dives · advanced · 18 min
Advanced Java and Spring: Runtime, Concurrency, Proxies, and Reactive Failure ModesA production field guide to GC choice, thread-pool saturation, Spring lifecycle traps, AOP boundaries, and blocking work in reactive services.
- 9
Deep dives · intermediate · 5 min
Java Appointment Times: Resolve DST Gaps and Overlaps ExplicitlyTurn a local appointment into an instant without silently shifting nonexistent times or choosing an ambiguous offset.
- 10
Deep dives · intermediate · 6 min
Java deadlines: spend one budget across every stageSeparate elapsed time from civil time and carry a shrinking deadline through a request.
- 11
Deep dives · advanced · 8 min
Java class-loader retention: why an undeployed app can remain in memoryTrace plugin and application class loaders from long-lived roots before blaming metaspace.
Practice checkpoint
Recall the concepts and test your understanding