What do you really mean in the "JVM Store memory on system"? JVM is, of course, the DEPENDED platform for the OS, but at the same time it is a set of frameworks. so I will try to explain the behavior of the JVM in the detailed steps:
1) Java code is compiled into bytecodes (understandable for the JVM);
2) The JVM processes these codes, and when the application starts, the JIT compiler calls the corresponding bytecode from the compiled source placed on the JVM. unlike previous applications (for example, WINapi), the platforms fully launched the HEX! application, so if you only needed to open a window with 1 window, the application stole your RAM until it was completely needed !;
3) The JVM finds the compiled bytecodes and when the corresponding event occurs, it only compiles the corresponding code! (THIS IS VERY IMPORTANT in the JVM), he does not. Also WinApi definitely does !;
4) it could be an Algorithmic error, and perhaps the application crashed due to some exceptional error or system failure (check this carefully!);
5) Of course! JVM depends on RAM memory, where else should it go further? -), therefore, he strongly recommended that you check the source code of the application first !. is jvm crashing? or does the application throw an exception ?, track it !;
6) Borh HEAP and STACK memory are part of COMPUTER MEMORY. for other purposes, distinguish memory cells in this way;
7) from memory is more like ERROR, not Exception !, so this is a platform problem, not an application. but NEVERTHESS, you can cause a memory error by creating the wrong algorithm, for example, an infinitive loop for creating objects, an infinitive increment of a value, etc;
Hope this helps even a little.