2013-10-25 8 views
5

मैंने एक वर्ग बनाया है जो पहले स्थिर था, यह वर्ग राज्य को जारी नहीं रखता है (संदर्भ या कोई चर नहीं रखता) केवल कार्यों की एक सूची है। लेकिन ऐप में कक्षा का बहुत उपयोग नहीं किया गया है इसलिए मैंने क्लास को तत्काल बनाने का फैसला किया।एंड्रॉइड स्थिर वर्ग बनाम गैर स्थैतिक वर्ग मेमोरी प्रदर्शन

क्यों?

क्योंकि मुझे लगता है कि एक तत्काल कक्षा कम स्मृति का उपयोग करेगी क्योंकि यह पूरे ऐप जीवन चक्र के दौरान उपलब्ध नहीं है।

क्या यह सही है?

एक स्थिर वर्ग गैर-स्थैतिक वर्ग की तुलना में अधिक स्मृति का उपयोग करता है?

धन्यवाद

+0

"स्टेटिक क्लास" एक मानक शब्द नहीं है। "स्थिर वर्ग" से आपका क्या मतलब है? किसी भी मामले में जवाब शायद "कोई फर्क नहीं पड़ता।" – Joni

उत्तर

9

मुझे लगता है कि आपने कक्षाओं के काम को गलत समझा है। किसी भी प्रकार की कक्षा ऐप के पूरे जीवनकाल में "उपलब्ध" है। कक्षा के लिए उपयोग की जाने वाली मेमोरी (विधियों इत्यादि) उदाहरण द्वारा उपयोग की गई स्मृति के लिए बहुत अलग है। जब तक आप वास्तव में कक्षा के एक उदाहरण बनाते हैं, तो यह अप्रासंगिक है। और यहां तक ​​कि स्थिर वर्गों को भी तत्काल किया जा सकता है - यह सिर्फ इतना है कि वे संलग्न वर्ग के उदाहरण के लिए एक अंतर्निहित संदर्भ बनाए रखते हैं।

यदि आपकी कक्षा को वास्तव में एक अंतर्निहित संदर्भ की आवश्यकता नहीं है (यानी यह इसका उपयोग नहीं करता है) तो इसे एक स्थिर नेस्टेड क्लास बनाएं - या फिर इसे शीर्ष-स्तरीय कक्षा के रूप में खींचें। (नेस्टेड कक्षाएं कभी-कभी दर्द हो सकती हैं - शीर्ष-स्तरीय कक्षाओं के आसपास के नियम सरल होते हैं।)

2

एक स्थैतिक वर्ग इस तरह के एक स्थिर स्थिर से अधिक स्मृति का उपयोग नहीं करता है। सभी वर्ग हमेशा एक आवेदन में उपलब्ध होते हैं - आप हमेशा एक स्थिर वर्ग का उपयोग कर सकते हैं या एक स्थिर स्थिर का उदाहरण बना सकते हैं।

यदि आपके पास अपनी कक्षा में केवल विधियां हैं (जो एक सहायक विधि प्रकार हैं) एक स्थिर वर्ग उपयोग करने के लिए अधिक सुविधाजनक है (उदाहरण बनाने की आवश्यकता नहीं है) और आपके मेमोरी उपयोग को प्रभावित नहीं करेगा।

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