JVM использует механизм постоянной генерации (Permanent Generation) для хранения данных, в том числе метаданных о созданных объектах, потому что это необходимо для управления программой. 1
При каждом создании объекта JVM сохраняет некоторый набор данных об объекте в области Permanent Generation. 1 Чем больше создаётся в программе объектов, тем больше требуется «пространства» в этой области. 1
Однако с версии Java 8 механизм постоянной генерации был заменён на Metaspace, так как предсказать потребность в метаданных было сложно и неудобно. 4