Skip to content
JavaAgentic

Type at least two characters. Try “RAG”, “pgvector” or “tool calling”.

Interview Prep · Phase 5

JVM Memory, GC & Performance

Heap, stack, metaspace and direct memory; every collector from Serial to ZGC and when each is the right answer; reading a GC log; the leak patterns that recur across every codebase; and the tooling that turns a guess into a measurement.

Intermediate6 min read

JVM Memory Areas: Heap, Stack, Metaspace, Direct

Every region the JVM allocates, which are per-thread and which are shared, why the heap is generational, where Metaspace lives since Java 8, and why total process memory always exceeds Xmx.

Read tutorial
Advanced6 min read

Reading GC Logs and Tuning Without Guessing

Enabling unified GC logging, reading a G1 log line by line, calculating allocation and promotion rates, identifying every Full GC cause, and the tuning changes that are usually wrong.

Read tutorial
Advanced7 min read

The Seven Classic Java Memory Leaks

The seven leak patterns that recur in every codebase, why a garbage-collected language leaks at all, how each one is diagnosed from a heap dump, and the code change that fixes each.

Read tutorial
Advanced6 min read

Every OutOfMemoryError and What It Means

Each OutOfMemoryError message, what it actually indicates, the most likely cause, and the first three things to check — plus why OOMKilled by the kernel is a different failure entirely.

Read tutorial
Advanced6 min read

Heap Dump Analysis with MAT

Capturing a heap dump safely in production, the difference between shallow and retained size, reading the dominator tree, using path to GC roots, and OQL queries that answer real questions.

Read tutorial
Advanced6 min read

JVM Flags and Container Awareness in Kubernetes

How the JVM reads cgroup limits, why MaxRAMPercentage beats Xmx in a container, how CPU quota affects GC and pool sizing, and why CPU limits cause latency spikes through throttling.

Read tutorial
Advanced6 min read

Profiling with JFR and async-profiler

Running JFR continuously in production, why traditional samplers suffer safepoint bias, reading a flame graph, allocation profiling, and choosing between CPU and wall-clock sampling.

Read tutorial
Expert8 min read

Object Layout, Escape Analysis and the JIT

How many bytes an object really costs, why compressed oops stop working above 32GB, how the JIT proves an object never escapes and removes the allocation, and what deoptimisation is.

Read tutorial