Perm Gen stands for permanent generation.
It is the space on Java Heap that holds meta-data describing user classes (classes that are not part of the Java language).
Examples of such meta-data are objects describing classes and methods and they are stored in the Permanent Generation.
Applications with large code-base can quickly fill up this segment of the heap which will cause java.lang.OutOfMemoryError: PermGen
no matter how high your -Xmx
(maximum size of the memory allocation pool) and how much memory you have on the machine.
Happy Learning! 😇