Новое ключевое слово выделяет память в куче Java. Куча - это основной пул памяти, доступный для всего приложения. Если для этого объекта недостаточно памяти, JVM пытается освободить часть памяти из кучи с помощью сборки мусора. Если он все еще не может получить достаточно памяти, выдается ошибка OutOfMemoryError и JVM завершает работу.
Куча разбита на несколько разных разделов, называемых поколениями. Поскольку объекты переживают больше сборок мусора, они продвигаются в разные поколения. Старшие поколения не собирают мусор так часто. Поскольку эти объекты уже доказали свою долговечность, они с меньшей вероятностью будут собирать мусор.
Когда объекты впервые создаются, они размещаются в пространстве Эдема. Если они выживают при сборе мусора, их повышают до Космоса выживших, и, если они там живут достаточно долго, они передаются Поколенному Штату. Это поколение мусора собирается гораздо реже.
Существует также четвертое поколение, называемое постоянным поколением, или PermGen. Объекты, которые здесь находятся, не подлежат сборке мусора и обычно содержат неизменяемое состояние, необходимое для работы JVM, например определения классов и пул констант String. Обратите внимание, что пространство PermGen планируется удалить из Java 8, и оно будет заменено новым пространством под названием Metaspace, которое будет храниться в собственной памяти. ссылка: http://www.programcreek.com/2013/04/jvm-run-time-data-areas/