Нове ключове слово виділяє пам'ять на купі Java. Купа - це основний пул пам'яті, доступний для всієї програми. Якщо не вистачає пам'яті для виділення цього об’єкта, JVM намагається повернути деяку пам’ять з купи за допомогою сміття. Якщо він все ще не може отримати достатню кількість пам'яті, викидається OutOfMemoryError, і JVM виходить.
Купа розбита на кілька різних розділів, званих поколіннями. Оскільки об’єкти виживають більше сміттєзбірників, їх рекламують у різні покоління. Старші покоління сміття збирають не так часто. Оскільки ці об’єкти вже зарекомендували себе довше живуть, вони рідше збирають сміття.
Коли споруди спочатку побудовані, вони розподіляються в просторі Едему. Якщо вони пережиють збір сміття, їх переводять у космос Survivor, і якщо вони там проживуть досить довго, їх відводять до покоління, яке перебуває у штаті. Це покоління сміття збирають набагато рідше.
Існує також четверте покоління, яке називається Постійне покоління, або PermGen. Об'єкти, які тут проживають, не можуть бути зібрані сміттям і зазвичай містять незмінний стан, необхідний для запуску JVM, наприклад визначення класів та постійний пул String. Зауважте, що простір PermGen планується видалити з Java 8, і він буде замінений на новий простір під назвою Metaspace, який буде зберігатися у вродженій пам'яті. довідка: http://www.programcreek.com/2013/04/jvm-run-time-data-areas/