From what I have understood, the Native Area inside the JVM is completely off-limits for the Garbage Collector. Inside the Native Area, in which Metaspace is located. In the aforementioned Metaspace, we have areas such as Constant Pool, Field and Method Data.
Since the Native Area is managed by the C++ memory management (or at least that's how I understand it), how come that Metaspace, that is not of a fixed size, instead grows dynamically, depending on how much memory is needed, will not run out of the memory? Is Garbage Collector allowed in the Metaspace, but not the rest of Native Area? Is C++ managing the memory there dynamically?