2012-06-07 19 views
5

संभव डुप्लिकेट:
static allocation in java - heap, stack and permanent generationजहां स्थिर आवंटित करते समय स्मृति आवंटित की जाती है?

एक छोटा सा भ्रम ... वर्ग, तरीके और variables.In इस तीन मामलों में जहां इस प्रकार स्मृति आवंटित करने के लिए स्थिर परिभाषित करने

अपनी। ? मेरा मालिक सी से परिचित है, वह कहता है कि केवल चर हीप मेमोरी में हैं और बाकी (स्थैतिक कक्षाएं और स्थैतिक विधियां) मुख्य स्मृति में रहेंगी। क्या वह ट्यूर है? कोई स्पष्टीकरण।

एक और स्थिर वर्ग और स्थिर तरीकों का उपयोग कर एंड्रॉयड में सबसे अच्छा अभ्यास है?

+0

डुप्लिकेट: [http://stackoverflow.com/q/405364/1073063 ](httpoverflow.com/q/405364/1073063) और [http://stackoverflow.com/q/6569557/1073063 ] (http://stackoverflow.com/q/6569557/1073063)। मॉडरेटर: क्षमा करें, मैंने गलत सवाल से लिंक किया जब मैंने इसे ध्वजांकित किया। – Pablo

उत्तर

5

इस प्रयास करें,

static members are stored in Method Area. 

कक्षा उदाहरणों और सरणियों ढेर स्मृति में जमा हो जाती है। हीप मेमोरी को साझा मेमोरी भी कहा जाता है। चूंकि यह वह जगह है जहां एकाधिक धागे एक ही डेटा साझा करेंगे।

Non-heap Memory 

यह ‘Method Area’ और अन्य आंतरिक प्रसंस्करण के लिए आवश्यक स्मृति शामिल हैं। तो यहां प्रमुख खिलाड़ी 'विधि क्षेत्र' है।

Method Area 

अंतिम पंक्ति में दिए गए अनुसार, विधि क्षेत्र गैर-ढेर स्मृति (एक विशेष ढेर क्षेत्र) का हिस्सा है। यह प्रति वर्ग संरचनाओं, विधियों और रचनाकारों के लिए कोड स्टोर करता है। प्रति वर्ग संरचना का मतलब रनटाइम स्थिरांक और static fields है।

ऊपर तीन (ढेर स्मृति, गैर ढेर स्मृति और विधि क्षेत्र) मुख्य शब्दजाल जब यह स्मृति और JVM की बात आती है।

कक्षा उदाहरणों और सरणियों ढेर स्मृति में जमा हो जाती है। हीप मेमोरी को साझा मेमोरी भी कहा जाता है। चूंकि यह वह जगह है जहां एकाधिक धागे एक ही डेटा साझा करेंगे।

+0

नहीं। स्टेटिक फ़ील्ड और स्थिरांक क्लास ऑब्जेक्ट में संग्रहीत हैं, जो ढेर में हैं। – EJP

3

स्थैतिक चर वर्ग घोषणा (तरीकों और विशेषताओं, आदि) के रूप में एक ही स्थान पर सहेजा जाता है। 1)। कक्षाएं (क्लासलोडर्स द्वारा लोड) स्थायी पीढ़ी नामक ढेर पर एक विशेष क्षेत्र में जाती हैं, और स्थैतिक क्षेत्र भी उसी स्थान पर जाते हैं क्योंकि वे कक्षा के प्रत्येक उदाहरण के लिए आम हैं। अधिक जानकारी के लिए:

see this answer

संबंधित मुद्दे