When the JVM starts, it has hundreds, if not thousands, of memory areas. For example, there is a stack for each thread, as well as a stream state area. There is a memory mapping for each shared library and jar. Note. The 64-bit version of Java does not use segments, such as a 16-bit application.
which distributes and manages these memory segments?
All mappings / memory regions are allocated to the OS.
The operating system does NOT know about the running java program and thinks that it is part of the JVM, running as a regular program on the computer,
JVM , , . , Java JVM, , .
JIT, Java,
JIT , Java .
,
malloc free map unmap
, , JVM .
. Java. , , , .
, (, java) ,
, , . Linux, , , 32- 64- .
, JVM malloc, ,
, G1, .
, , , , , .
, - , ...
, JVM , , Java- , . , C, JVM - C/++.