Skip to main content
Back to course
Log in
Get started
Someone wanted to learn this too, so Grasp built them a personal learning path.
Create your own
Java Backend Microservices Development
ยท
Module 1
Modern Java Runtime, Threads, and Concurrency
1
Tracing Backend Requests Through Stack and Heap State
Trace a backend request through stack frames and heap objects to identify thread-confined and shared state.
Trace a backend request through stack frames and heap objects to identify thread-confined and shared state.
2
Generational Garbage Collection and Performance Metrics
Explain generational garbage collection and interpret basic pause-time and allocation-rate metrics.
Explain generational garbage collection and interpret basic pause-time and allocation-rate metrics.
3
Java Memory Model: Atomicity, Visibility, and Ordering Guarantees
Distinguish atomicity, visibility, and ordering guarantees in the Java Memory Model.
Distinguish atomicity, visibility, and ordering guarantees in the Java Memory Model.
4
Diagnosing Race Conditions in Shared Java State
Reproduce and diagnose a race condition in shared mutable Java state.
Reproduce and diagnose a race condition in shared mutable Java state.
5
Protecting Compound State Transitions with Locks
Protect a compound state transition using synchronized blocks or explicit locks.
Protect a compound state transition using synchronized blocks or explicit locks.
6
Selecting Concurrent Collections for Read-Write Workloads
Select an appropriate concurrent collection for a specified read-write workload.
Select an appropriate concurrent collection for a specified read-write workload.
7
Concurrent I/O and Failure Handling with CompletableFuture
Execute independent I/O operations with CompletableFuture and propagate failures correctly.
Execute independent I/O operations with CompletableFuture and propagate failures correctly.
8
Comparing Bounded Platform-Thread and Virtual-Thread Executors
Configure and compare a bounded platform-thread executor with a virtual-thread-per-task executor for a backend workload.
Configure and compare a bounded platform-thread executor with a virtual-thread-per-task executor for a backend workload.
Next module isn't ready yet,
Back to course
Previous module
Next module