Minor GC vs Full GC — Scope, Pause Duration, Causes, and Log Signatures
Fast recall
Quick revision
Core answer
System.gc(), allocation failure when heap is undersized. In Java 9+ unified logs, look for Pause Young (Normal) (minor) vs Pause Full (G1 Evacuation Pause) with a reason in parentheses (full). Treat any non-rare full GC as a problem to investigate.Whether you can read a GC log and immediately tell whether the app is healthy or in trouble — and whether you know the specific triggers of full GC
Treating any GC pause as a problem (minor GCs are normal background activity) or assuming full GC frequency is just about heap size (most are caused by specific preventable triggers)
Distinguish G1's `Pause Mixed` (incremental old-gen collection, healthy) from `Pause Full` (fallback to serial collector, pathological), and list the specific JVM flags that disable each preventable full-GC trigger
Interview-ready guide
Interview answer
Minor GC and full GC describe entirely different events with completely different operational implications.
Minor GC:
- Collects only the young generation — Eden plus the active Survivor space
- Typically 10-50ms — runs frequently in healthy apps; background noise
- Triggered when Eden fills
- Log marker:
Pause Young (Normal)in Java 9+
Full GC:
- Collects the entire heap — young, old, and Metaspace
- Stops all application threads — pauses can take seconds on large heaps
- Always worth investigating in a modern collector
- Log marker:
Pause Fullwith a reason in parentheses
G1 has a healthy middle ground — mixed GC:
Pause Mixedcollects young gen plus a few old-gen regions per cycle- Spreads old-gen reclamation across many small pauses
- Replaces what older collectors called major GC
Common full GC triggers, with mitigations:
(System.gc())from libraries →-XX:+DisableExplicitGCor-XX:+ExplicitGCInvokesConcurrent(To-space exhausted)in G1 → increase-Xmxor-XX:G1ReservePercent(Metadata GC Threshold)→ cap Metaspace and fix classloader leak(Allocation Failure)→ heap is undersized- Memory leak → capture heap dump, analyze in Eclipse MAT, fix in code
The diagnostic discipline:
- Always enable GC logging in production:
-Xlog:gc*on Java 9+ - Treat minor GC as background; investigate every full GC
- Use GCEasy or JMC for visual analysis
- Pair with
-XX:+HeapDumpOnOutOfMemoryErrorso you have evidence when OOM strikes
In an interview, the differentiator is distinguishing G1's Pause Mixed from Pause Full — most candidates conflate them, missing the fact that mixed GC is the healthy operation while full GC is the fallback.
Minor GC vs Full GC — Scope, Pause Duration, Causes, and Log Signatures
Direct Answer
Minor GC collects only the young generation (Eden + active Survivor). It runs frequently — every few seconds in a busy app — completes in 10-50ms, and is healthy. It is triggered when Eden fills. Full GC stops all application threads and collects the entire heap (young + old + Metaspace). It can take 1-30 seconds depending on heap size and is always pathological in modern collectors. Common triggers: promotion failure, to-space exhausted (G1), Metaspace OOM, explicit System.gc(), allocation failure when heap is undersized. In Java 9+ unified logs, look for Pause Young (Normal) (minor) vs Pause Full (G1 Evacuation Pause) with a reason in parentheses (full). Treat any non-rare full GC as a problem to investigate.
Common Mistakes & Pitfalls
Treating any GC pause as a problem (minor GCs are normal background activity) or assuming full GC frequency is just about heap size (most are caused by specific preventable triggers)
Check your understanding
Answer these without looking back at the article.
- What does 'To-space exhausted' mean in a G1 GC log?
- Why is `-XX:+ExplicitGCInvokesConcurrent` preferred over `DisableExplicitGC` in some situations?
- How does G1's mixed GC differ from CMS's old-gen collection?
- What's the difference between 'GC overhead limit exceeded' and a regular OOM?
Related interview prep categories
2Looking for a structured roadmap?
Every module on this page is also part of the full Java backend interview track.