मैं निम्नलिखित कार्यक्रम,जावा स्ट्रिंग समस्याओं
String firstString = "String";
String secondString = "String";
String thirdString = new String("String");
System.out.println(firstString == secondString);
System.out.println(firstString == thirdString);
System.out.println(firstString.intern() == thirdString);
System.out.println(firstString.intern() == thirdString.intern());
System.out.println(firstString.intern().equals(thirdString.intern()));
System.out.println(firstString == thirdString);
भाग गया और मेरी उत्पादन
true
false
false
true
true
false
था मुझे पता चला है कि एक ही तारों के रूप में एक ही सामग्री के साथ JVM पूल स्ट्रिंग। क्या वह सही है? यदि यह सच है तो क्यों पहले स्ट्रिंग == तृतीयString झूठी वापसी नहीं? क्या जेवीएम केवल स्ट्रिंग को ही पूल करता है: "" और नए ऑपरेटर के साथ नहीं?
यह भी प्रयास करें: 'firstString == thirdString.intern() ', यह देखने के लिए कि स्ट्रिंग अक्षर स्वचालित रूप से आंतरिक हैं। –