क्या पहले से ही कहा गया था के अलावा, स्ट्रिंग शाब्दिक [यानी, "abcd"
लेकिन नहीं की तरह तार की तरह new String("abcd")
] जावा में प्रशिक्षु रहे हैं - इसका मतलब यह है कि हर बार जब आप का उल्लेख "एबीसीडी" करने के लिए, आप एक के लिए एक संदर्भ मिल प्रत्येक बार एक नए के बजाय एकल String
उदाहरण। तो तुम होगा:
String a = "abcd";
String b = "abcd";
a == b; //True
लेकिन अगर आप
String a = new String("abcd");
String b = new String("abcd");
था तो यह
a == b; // False
(और मामले में किसी को भी याद दिलाने की जरूरत है, हमेशा .equals()
का उपयोग स्ट्रिंग्स की तुलना करने के लिए संभव है; भौतिक समानता के लिए ==
परीक्षण)।
आंतरिक स्ट्रिंग अक्षर अच्छा है क्योंकि उन्हें अक्सर एक से अधिक बार उपयोग किया जाता है। उदाहरण के लिए, (काल्पनिक) कोड पर विचार करें:
for (int i = 0; i < 10; i++) {
System.out.println("Next iteration");
}
हम स्ट्रिंग्स का होना शामिल नहीं था, तो "अगली यात्रा" 10 बार instantiated जा करने के लिए है, जबकि अब यह केवल एक बार instantiated हो जाएगा की आवश्यकता होगी।
आपको इस प्रश्न पर भी गौर करना चाहिए http://stackoverflow.com/questions/456575/java-wrapper- समानता परीक्षण – changed
क्योंकि स्ट्रिंग अक्षर पहले से ही ऑब्जेक्ट्स हैं। – EJP
ध्यान दें कि 'नई स्ट्रिंग (...) 'का उपयोग बड़े तारों को प्रतिस्थापित करते समय कार्यान्वयन विस्तार को रोकने के लिए किया गया है। यह जावा 7 में तय किया गया था और अब और आवश्यक नहीं है। –