Most Java JVMs are simple C programs. Thus, the picture will be the same as the first class file that is interpreted / executed.
After that, it depends on the implementation of the JVM. Usually they use the stack store to track information such as control, for example, which classes are loaded, which threads are started, etc. For real “software” storage, the interpreter and garbage collector will use a simple “malloc” / “mfree” to allocate and free memory, plus some fairly complex management structures to allow the garbage collector to function.
source share