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