Java process memory management diagrams
There are a huge number of articles and diagrams on this topic on the Internet, however, in my opinion, none of them allows you to form a general idea of the memory use in the Java process. And without a general understanding, it is difficult to find solutions to specific memory problems in complex systems. As a result, I decided to post my diagrams.
Simplified diagram of Java memory usage of a process:

Detailed diagram of Java memory usage of a process by some parameters:

List of JVM parameters for Copy Paste
-XX:+UnlockDiagnosticVMOptions -XX:+PrintFlagsFinal -XX:+PrintGCDetails -Xlog:gc+heap -XX:+HeapDumpOnOutOfMemoryError -XX:+UseSerialGC -XX:+UseParallelGC -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+UseG1GC -XX:+UseShenandoahGC -XX:+UseZGC -XX:+UseEpsilonGC -XX:MinRAMPercentage -XX:MaxRAMPercentage-Xms -Xmx -XX:-AdaptiveSizePolicy -XX:MetaspaceSize -XX:MaxMetaspaceSize -XX:MinMetaspaceFreeRatio -XX:MaxMetaspaceFreeRatio -n jvmJavaOSStackSize -Xss -XX:VmThreadStackSize -XX:CompilerThreadStackSize -XX:+PrintGCDetails -XX:+TraceClassUnloading -XX:+TraceClassLoading -XX:CompressedClassSpaceSize -XX:-UseCompressedClassPointers -XX:+PrintStringTableStatistics -XX:StringTableSize -XX:+UseStringDeduplication -XX:+PrintCodeCache -XX:InitialCodeCacheSize -XX:ReservedCodeCacheSize -XX:CodeCacheExpansionSize -n jvmNativeStackSize -XX:MaxDirectMemorySize -XX:NativeMemoryTracking=off | summary | detail -XX:+PrintNMTStatistics -XX:-AutoShutdownNMT -XX:+PrintCompilation -XX:+UnlockDiagnosticVMOptions -XX:+LogCompilation -XX:+PrintFlagsFinal -XX:CICompilerCount -XX:CompileThresholdn -XX:-TieredCompilation -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=9099 -Dcom.sun.management.jmxremote.rmi.port=9099 -Dcom.sun.management.jmxremote.local.only=false -Djava.rmi.server.hostname=0.0.0.0 -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:8000
A short list of diagnostic tools
JProfiler VisualVM JConsole Java Flight Recorder async-profiler JDK Mission Control jstack jmap
These diagrams are not intended to provide complete knowledge, but they can be a starting point in exploring the topic deeper, filling knowledge gaps, tuning the JVM, and finding the problem in the current system.