क्या जावा स्ट्रिंग वेरिएबल का उपयोग करके जावा बनाम private final static String
का उपयोग करके कोई प्रदर्शन लाभ होता है जिसे विधि को हर बार "प्रारंभिक" प्राप्त करना होता है?जावा स्ट्रिंग्स: निजी स्थैतिक बनाम स्थानीय परिवर्तनीय प्रदर्शन
मुझे लगता है कि private static final
तारों का उपयोग करना स्थिरांक के लिए एक अच्छा अभ्यास है जो कक्षा के विभिन्न हिस्सों में पुन: उपयोग किया जाता है, हालांकि यदि एक स्ट्रिंग का उपयोग केवल एक ही तरीके से किया जाना चाहिए, एक ही विशिष्ट कारण के लिए कोई अन्य विधि इस बारे में चिंतित नहीं है, मैं वास्तव में वर्ग के आंतरिक इंटरफ़ेस को कम निजी सदस्यों के साथ साफ रखना पसंद करता हूं, और केवल स्थानीय चर का उपयोग करता हूं।
यह देखते हुए कि जावा स्ट्रिंग इंटर्निंग कर रहा है, और वास्तव में उद्धरण (String s = "some string"
) का उपयोग करके घोषित प्रत्येक स्ट्रिंग की एक प्रति के साथ पूल रखता है, वास्तव में प्रत्येक को वैरिएबल घोषित/प्रारंभ/असाइन करने के लिए प्रदर्शन हिट होगा एक स्थिर स्ट्रिंग का उपयोग कर विधि का उपयोग कर सकते हैं?
इसे थोड़ा और स्पष्ट करने के लिए, SS
या LS
का उपयोग करने के बीच कोई अंतर होगा?
class c {
private final static String SS = "myString";
private void method(){
//do something with SS
}
private void OtherMethod(){
String LS = "myOtherString"
//do same thing with LS
}
}
"* प्रत्येक अलग स्ट्रिंग की एक प्रति के साथ पूल रखता है *" यह गलत है। केवल जावा स्ट्रिंग्स (जब तक आप 'String.intern() 'कॉल नहीं करते हैं) आपके कोड में' quot "उद्धृत हैं। रनटाइम पर निर्मित स्ट्रिंग्स * नहीं * स्थिरांक पूल में प्रशिक्षित हैं। – dimo414
आप सही हैं, जिनके बारे में मैं बात कर रहा था, मैं –