How do you tell a Java heap leak from Metaspace growth?
PICTURE THIS: HOW JAVA RUNS
Simple meaning
A heap leak shows old-gen occupancy rising across GC cycles and retained objects in a heap dump, often caches without bounds.
WHY — JVM instead of guessing?
Why interviewers care about JVM:
question about JVM.
trade-offs, and what you would actually do on a Backend project - not buzzwords.
Name the idea, why it exists, then one short example.
End with when you use it and one common pitfall.
STEPS — What happens step by step?
Before you speak the answer, walk the interviewer through these steps:
- 1A heap leak shows
old-gen occupancy rising across GC cycles and retained objects in a heap dump, often caches without bounds.
- 2Metaspace growth comes from
classloaders leaking, typical in hot-redeploy or generating many proxy classes.
- 3Different dumps: heap dump
versus native/metaspace tracking and -XX:MaxMetaspaceSize as a safety cap.
- 4Give an example
One tiny concrete case you can say aloud.
- 5Common mistake
What juniors usually get wrong.
- 6Close
When you pick this over the alternative.
EXAMPLE — See it in action
Here's a short line you can speak, broken into clear beats:
Note: Adapt this scaffold to your own project — keep it under 60–90 seconds.
Key takeaway
A heap leak shows old-gen occupancy rising across GC cycles and retained objects in a heap dump, often caches without bounds. Metaspace growth comes from classloaders leaking, typical in hot-redeploy or generating many proxy classes.