2011-06-17 8 views
6

क्या जावा स्थैतिक चर उसी वेब एप्लिकेशन के उदाहरणों में साझा किए गए हैं?वेब अनुप्रयोगों में जावा स्थैतिक सदस्य का दायरा

class MyClass 
{ 
    private static SomeClass myStaticObject = new SomeClass(); 
} 

एक वेब अनुप्रयोग MyClass और कई है कि आवेदन के उदाहरण एक वेब सर्वर पर चलाया जाता है का उपयोग करता है, तो myStaticObject प्रारंभ कई बार है?

उत्तर

8

आमतौर पर, हाँ। अधिकांश कंटेनर प्रत्येक वेब एप्लिकेशन के लिए अलग-अलग क्लासलोडर प्रदान करेंगे। इसका परिणाम कई अनुप्रयोगों द्वारा उपयोग किए जाने पर कक्षा को कई बार लोड किया जा रहा है, और इस प्रकार स्थिर चर के कई उदाहरण होते हैं।

बताते हुए संदर्भ के लिए Java Language Specification:

रन समय में, कई संदर्भ प्रकार एक ही द्विआधारी नाम के साथ जा एक साथ अलग वर्ग लोडर द्वारा लोड कर सकते हैं। ये प्रकार एक ही प्रकार घोषणा का प्रतिनिधित्व नहीं कर सकते हैं या हो सकता है। भले ही ऐसे दो प्रकार समान प्रकार की घोषणा का प्रतिनिधित्व करते हैं, उन्हें अलग माना जाता है।

अनुमान करके, स्थैतिक चर के कई उदाहरण मौजूद हैं, जब तक कक्षाएं एक माता पिता के वर्ग लोडर द्वारा केवल एक बार लोड किए गए हैं, और किसी भी अन्य वर्ग लोडर से कहीं और लोड कभी नहीं होगा।

-1

मुझे MyClass में परिवर्तनीय होने का बिंदु बिल्कुल दिखाई नहीं देता है। यदि यह private है, तो आप इसे कक्षा के बाहर से कक्षा चर के रूप में एक्सेस नहीं कर सकते हैं। यदि आप चाहते हैं कि अन्य वर्गों को गेटटर विधि के माध्यम से इस चर का उपयोग करना है तो आपको static कीवर्ड को हटा देना चाहिए।

+3

'निजी स्थैतिक' चर का उपयोग करने के बहुत सारे उपयोग-मामले हैं। ऐसा एक अगली उपलब्ध ऑब्जेक्ट आईडी पकड़ना है। –

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