A JVM (Java Virtual Machine) runs programs in Java and many other languages and provides the runtime environment, CPU, memory, and security management. At any particular moment, the running JVM has many objects, and a heap dump is a snapshot of the memory allocated to all these objects. https://dzone.com/articles/using-heap-dumps-to-find-memory-leaks