Q36: What is Metaspace and how does it differ from legacy PermGen Space?

Prior to Java 8, class metadata was stored in PermGen (Permanent Generation) inside Heap memory, bounded by fixed contiguous capacity (-XX:MaxPermSize), causing frequent OutOfMemoryError: PermGen space. In Java 8, PermGen was replaced by Metaspace, located in Native OS Memory. Metaspace expands dynamically by default, limited only by available system RAM.

Key Takeaways
  • Metaspace resides in Native Memory (not Heap).
  • Prevents fixed-size class metadata OutOfMemoryError bottlenecks.
Knowledge Check

Starting in Java 8, where is JVM class structure metadata stored?