दिलचस्प पोस्ट
रनटाइम पर लोकेल बदलें? स्विफ्ट में कैसे सेटअप पुश नोटिफिकेशन मैं py2exe में निष्पादन योग्य की वर्तमान निर्देशिका कैसे प्राप्त करूं? जावा में एक ज़िप फ़ाइल कैसे बनाएं Django / jQuery कैस्केडिंग चयन बक्से? ट्रांसमिशन मैट्रिक्स के साथ एसवीजी निर्देशांक क्या दशमलव दशमलव या एक आंशिक शाब्दिक है? कैसे एक रंग BufferedImage में पारदर्शी बनाने के लिए और PNG के रूप में सहेजें व्यू बिल्ड समय क्या है? कैसे बाहर निकलने से पहले खत्म करने के लिए सभी बैच फ़ाइलों को इंतजार करने के लिए? सी और सी ++ में अलग पॉइंटर्स अलग-अलग परिभाषित क्यों हैं? क्या रैवल्यू के संदर्भ झूलते संदर्भों की अनुमति देते हैं? localStorage – getItem / setItem फ़ंक्शंस का उपयोग करें या ऑब्जेक्ट सीधे एक्सेस करें? मैं अपने कोड को अधिक सुरक्षित बनाने के लिए पीडीओ के साथ पासवर्ड हैशिंग का उपयोग कैसे करूं? विन्यास स्थान से कॉन्फ़िग लोड करने के लिए कॉन्फ़िगरेशन प्रबंधक का उपयोग करना

जावा में स्ट्रिंग की तुलना और स्ट्रिंग इंटर्निंग

जब String को ऑब्जेक्ट्स की तुलना में करना चाहिए और अपने equals विधि का उपयोग कब करना चाहिए? यह सुनिश्चित करने के लिए, मैं हमेशा equals उपयोग करता हूं, लेकिन यह बहुत ही कुशल नहीं लगता क्या परिस्थितियों में मैं निश्चित हो सकता हूं कि string1 == string2 उपयोग में सुरक्षित है?

धन्यवाद!

वेब के समाधान से एकत्रित समाधान "जावा में स्ट्रिंग की तुलना और स्ट्रिंग इंटर्निंग"

आपको लगभग हमेशा equals उपयोग करना चाहिए। आप यह सुनिश्चित कर सकते हैं कि string1 == string2 काम करेगा अगर:

  • आप पहले से ही सुनिश्चित कर चुके हैं कि आपके पास किसी अन्य तरीके से अलग मान हैं (जैसे आप किसी सेट से लाए गए स्ट्रिंग मूल्यों का उपयोग कर रहे हैं, लेकिन किसी अन्य कारण से उनकी तुलना करना)
  • आप जानते हैं कि आप संकलन समय स्ट्रिंग स्थिरांक के साथ काम कर रहे हैं
  • आपने मैन्युअल रूप से तारों को अपने आप को इंटर्न किया है

यह वास्तव में बहुत बार ऐसा नहीं होता है, मेरे अनुभव में

मैं जावा से क्या जानता हूं, string1==string2 केवल तभी सत्य होगा यदि उन ऑब्जेक्ट्स के संदर्भ string1==string2 I निम्नलिखित मामले पर एक नज़र डालें

 String string1 = new String("Bob"); String string2 = new String("Bob"); string1 == string2; // false, they are seperate objects string1 = string2; // asigning string1 to string2 object string1 == string2; // true, they both refer to the same object 

तुलना के लिए आप केवल == प्रयोग कर सकते हैं यदि आप सुनिश्चित हैं कि ऑब्जेक्ट समान हैं

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

स्ट्रिंग तुलना के equals साथ छड़ी