24 lessons · Java 21 core and Java 25 diagnostics

Make concurrent Java correct before making it busy.

Trace tasks across shared memory, executors, cancellation, virtual threads, finite resources, and production evidence—without confusing thread count with capacity.

Six ordered modules · approximately 8 hours

Move from correctness to production capacity.

Java 21 examples form the executable core while Java 25 diagnostic behavior stays versioned and evidence-bound.

Module 05 · 9 lessons

JVM performance, GC, and runtime diagnostics

Move from user impact through GC, managed and native memory, thread, JIT, container, and capacity evidence before changing runtime policy.

  1. Production JVM Performance Diagnostics Explained
  2. JVM Garbage Collection Logs and Pause Diagnosis Explained
  3. G1 Garbage Collector Diagnosis and Tuning
  4. ZGC Low-Latency Garbage Collection Diagnosis and Tuning
  5. Java Heap Dumps and Memory Leak Analysis
  6. JVM Native Memory, Metaspace, and Container OOM Diagnosis
  7. JVM Thread Dumps, Safepoints, and CPU Saturation Diagnosis
  8. JVM JIT, Code Cache, and Warmup Diagnosis
  9. Evidence-Based JVM Tuning and Capacity Verification

Practice and evidence

Model capacity, then validate the real system.

The browser lab and two existing games expose deadline isolation and overload control. They remain teaching tools, not JVM benchmarks or production calculators.

Course library

Review every lesson.

Shared lessons keep one canonical article and one completion state across their approved paths.

FAQ

Java Concurrency course questions

Which Java version does this course use?

Executable core examples target Java 21. Scoped Values are labeled as Java 25 final API, while Structured Concurrency is isolated as JDK 26 sixth preview with required preview flags.

Do virtual threads remove the need for capacity limits?

No. Virtual threads reduce the cost of waiting threads but do not add CPU, connections, memory, lock throughput, or downstream capacity. Guard scarce resources separately.

Is the concurrency lab a benchmark or thread-pool calculator?

No. It is a deterministic discrete-event teaching model and does not create threads, measure a JVM, plan capacity, or generate production configuration.

How does shared lesson progress work?

Every article keeps one canonical URL and one local completion record. Shared Virtual Threads and troubleshooting lessons count in Java Concurrency, Spring Backend, and System Design where applicable.