मैं इस तरह कोड है:String.intern() विधि दो अलग-अलग परिणामों को क्यों लौटाता है?
public static void main(String[] args) {
String str1 = new StringBuilder("计算机").append("软件").toString();
System.out.println(str1.intern()==str1);
String str2 = new StringBuilder("ja").append("va").toString();
System.out.println(str2.intern()==str2);
String str3 = new StringBuilder("Str").append("ing").toString();
System.out.println(str3.intern()==str3);
}
और मैं परिणाम है:
true
false
true
मैं समझ सकता क्यों पंक्ति 1 और पंक्ति 3 सच है, लेकिन मैं पंक्ति 2 के बारे में इस मुद्दे को हूँ, क्यों इस गलत है?
मेरे जावा है: जावा संस्करण "1.8.0_73"
क्योंकि '" जावा "' स्पष्ट रूप से निरंतर में पहले से ही है पूल, इसलिए 'str2.intern()' बस उस संदर्भ को वापस कर देता है, जो कि नए 'str2' संदर्भ से अलग है। – Tom
@ टॉम क्यों "जावा" पहले से ही निरंतर पूल में है? और क्यों "स्ट्रिंग" नहीं है? – Timi