Heap dump
A heap dump is a diagnostic snapshot of the objects, values, and references present in a managed runtime heap at a particular time.
Troubleshooting Java, Second Edition
A heap dump is a diagnostic snapshot of the objects, values, and references present in a Java heap at a particular time.
- How it is used
- Supports post-crash and memory-allocation investigations when profiling is unavailable or an OutOfMemoryError has stopped the application.
- How deep it goes
- Explains capture methods, VisualVM inspection, object sorting, and reference tracing, while deferring advanced querying to OQL.
- Examples
- Uses Product and String instances retained by a static ArrayList, plus VisualVM object and reference views.
- What you can do after
- Diagnose memory leaks and retained objects with VisualVM, command-line dumps, object views, reference paths, and OQL.
Read how Troubleshooting Java, Second Edition explains heap dump →
The Art of Code
A heap dump is a snapshot of the objects and memory state of a managed runtime heap at a particular time.
- How it is used
- Uses heap dumps for post-mortem inspection of Java memory during fatal failures and exploratory investigation of leaks or memory pressure.
- How deep it goes
- Defines heap dumps and their diagnostic role, but stops short of specifying capture commands, dump formats, or interpretation procedures.
- Examples
- Uses OutOfMemoryException, production-only failures, garbage-collection logs, thread dumps, and resource baselines as diagnostic examples.
- What you can do after
- Diagnose memory-related Java failures by correlating heap state with runtime, application, and infrastructure evidence.
Related concepts
- VisualVMused by · VisualVM is a Java monitoring and profiling tool for inspecting running applications, JVM behavior, resource usage, and performance.
- Object Query Languageused by · Object Query Language is a query language for retrieving and examining objects and related data in heap dumps.
- heapaddresses · A runtime memory region from which dynamically allocated data is obtained and whose storage is managed independently of individual function call frames.
- JVMconfigured by · The Java Virtual Machine is an abstract runtime environment that executes Java bytecode and compatible compiled code according to defined execution semantics.
These guides are generated from the text of Manning books by Manning's knowledge graph and link to the sections they draw on. The full books are available on liveBook and at manning.com.

