2012-10-18 16 views
5

में स्थानीय चर की अधिकतम संख्या Single Responsibility Principle के महत्व को समझती है, लेकिन तकनीकी रूप से बोलते हुए हमारे पास प्रत्येक जावा विधि के भीतर स्थानीय चर (जो स्टैक फ्रेम में संग्रहीत हैं) की संख्या पर कोई ऊपरी सीमा है। और यह ऊपरी बाउंड अधिकतम स्टैक आकार के बराबर है, यानी, क्या मेरे पास अधिकतम स्टैक आकार के बराबर आकार का एक स्टैक फ्रेम कॉन्फ़िगर किया जा सकता है?जावा विधि

+2

एकल उत्तरदायित्व सिद्धांत से संबंधित प्रश्न कैसा है? – Ankur

+1

ठीक है। तो संबंध यह है कि बहुत से स्थानीय चर के साथ एक एकल विधि होना अच्छा नहीं है। इस मामले में यह उस सिद्धांत का उल्लंघन कर रहा है। – Bajji

+0

आप इस पोस्ट को देख सकते हैं: - http://stackoverflow.com/questions/3700459/how-to-increase-to-java-stack-size –

उत्तर

4

स्थानीय चर की संख्या को परिभाषित करने में कोई ऊपरी सीमा नहीं है। यदि आप बहुत सारे चर परिभाषित करते हैं जो स्टैक फ्रेम में फिट नहीं हो सकते हैं (या) JVM उस आकार के लिए एक स्टैक फ्रेम आवंटित नहीं कर सका, तो यह StackOverflowError फेंक देगा और बाहर निकल जाएगा।

एक स्टैनफोर्ड प्रोफेसर द्वारा lecture अच्छा है जो आपकी मदद कर सकता है।

+0

क्या JVM एक निश्चित आकार के ढेर फ्रेम बनाता है? यदि ऐसा है तो इसे बढ़ाने का कोई तरीका है? मुझे पता है कि -एक्सएसएस स्टैक आकार को नियंत्रित करता है, वैसे ही फ्रेम आकार को नियंत्रित करने के लिए कुछ भी है? – Bajji

+1

ढेर फ्रेम आकार आपकी विधि परिभाषा द्वारा निर्धारित किया जाता है। यह हमेशा प्रत्येक विधि के लिए एक ही है। –

+0

@ नंबारी, यह सिर्फ मेरे लिए सही नहीं है। आकार ज्ञात है और यह अधिकतम 65,536 है। – Eugene

2

यह वास्तव में आपके रनटाइम द्वारा परिभाषित किया जाएगा और प्रति प्रक्रिया कितनी स्टैक स्पेस आवंटित की जाएगी।

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