नया कीवर्ड जावा हीप पर मेमोरी आवंटित करता है। ढेर मेमोरी का मुख्य पूल है, जो पूरे अनुप्रयोग के लिए सुलभ है। यदि उस ऑब्जेक्ट के लिए आवंटित करने के लिए पर्याप्त मेमोरी उपलब्ध नहीं है, तो जेवीएम कचरे के संग्रह के साथ ढेर से कुछ मेमोरी को पुनः प्राप्त करने का प्रयास करता है। यदि यह अभी भी पर्याप्त मेमोरी प्राप्त नहीं कर सकता है, तो एक OutOememoryError फेंक दिया जाता है, और JVM बाहर निकलता है।
ढेर को कई अलग-अलग वर्गों में विभाजित किया जाता है, जिन्हें पीढ़ियों कहा जाता है। जैसे ही वस्तुएँ अधिक कचरा संग्रहण से बच जाती हैं, उन्हें विभिन्न पीढ़ियों में बढ़ावा दिया जाता है। पुरानी पीढ़ियों को अक्सर इकट्ठा नहीं किया जाता है। क्योंकि ये वस्तुएं पहले से ही लंबे समय तक जीवित साबित हुई हैं, वे कचरा एकत्र होने की संभावना कम हैं।
जब वस्तुओं का निर्माण किया जाता है, तो उन्हें ईडन स्पेस में आवंटित किया जाता है। यदि वे एक कचरा संग्रह से बच जाते हैं, तो उन्हें उत्तरजीवी अंतरिक्ष में पदोन्नत किया जाता है, और क्या उन्हें वहां लंबे समय तक रहना चाहिए, उन्हें टेन्योर जेनरेशन को आवंटित किया जाता है। यह पीढ़ी बहुत कम बार कचरा इकट्ठा किया जाता है।
एक चौथी पीढ़ी भी है, जिसे परमानेंट जेनरेशन या पर्मगेन कहा जाता है। यहां रहने वाली वस्तुएं कचरा एकत्र करने के योग्य नहीं हैं, और आमतौर पर जेवीएम को चलाने के लिए आवश्यक एक अपरिवर्तनीय स्थिति होती है, जैसे कि कक्षा परिभाषाएं और स्ट्रिंग स्थिर पूल। ध्यान दें कि PermGen स्पेस को Java 8 से हटाने की योजना है, और इसे Metaspace नामक एक नए स्पेस से बदला जाएगा, जो कि देशी मेमोरी में आयोजित किया जाएगा। संदर्भ j http://www.programcreek.com/2013/04/jvm-run-time-data-areas/