नोटिसियल, ऑब्जेक्ट "ढेर" पर चला जाता है। फिर, क्योंकि यह एक विधि-स्थानीय संदर्भ है, वास्तविक संदर्भ ढेर पर होगा। "स्टैक" द्वारा, हमारा मतलब है कि सूर्य के वीएम के मामले में देशी थ्रेड स्टैक (यानी वही स्टैक जो सी में स्थानीय चर आवंटित किया जाएगा), लेकिन मुझे नहीं लगता कि यह वास्तव में एक आवश्यकता है (JVM बस "स्टैक फ्रेम" की कुछ अमूर्त धारणा है कि यह प्रत्येक विधि कॉल पर आवंटित करती है, चाहे वह मूल ढेर से हो या नहीं)।
लेकिन ... आधुनिक वीएम पर (स्वीकार्य रूप से सरल एम्बेडेड/एमपीबीआईएल वीएम के संभावित अपवाद के साथ), वास्तव में "ढेर" जैसी कोई चीज़ नहीं है। अभ्यास में, विभिन्न ढेर क्षेत्र हैं। इनमें से सबसे सरल आमतौर पर लगभग "मिनी स्टैक" की तरह होता है, जो ऑब्जेक्ट्स को आवंटित करने के लिए त्वरित होता है जो लंबे समय तक लटका नहीं होगा और संभवतः लगभग एक बार आवंटित किया जा सकता है।
जैसा कि एक अन्य पोस्टर द्वारा उल्लिखित है, एक अत्यधिक अनुकूलित जेवीएम सिद्धांत में सिद्धांत रूप में स्टैक पर ऑब्जेक्ट डेटा आवंटित कर सकता है और इसके लिए निश्चित प्रस्ताव हैं। हालांकि, जैसा कि संदर्भों में से एक में भी उल्लेख किया गया है, इसकी आलोचना यह है कि तेज़ "ईडन" ढेर लगभग किसी भी ढेर की तरह है (बस "स्टैक" नहीं)।
स्रोत
2009-05-17 03:44:16
यह प्रश्न थोड़ा अस्पष्ट है। यह या तो "स्मृति में संग्रहीत MyShip का संदर्भ कहां है?" या "स्मृति में संग्रहीत myShip द्वारा ऑब्जेक्ट कहां इंगित किया गया है?" पूर्व के लिए वैचारिक उत्तर ढेर है, और उत्तरार्द्ध के लिए वैचारिक उत्तर हेप है, ऑप्टिमाइज़ेशन और पागल कार्यान्वयन को छोड़कर, और जवाब दोनों तरीकों का जवाब दे रहे हैं। –