मैं इस प्रश्न पूछा गया था:जावा स्ट्रिंग ऑब्जेक्ट्स मेमोरी में कैसे संभालता है?
String s = "abc"; // creates one String object and one
// reference variable
In this simple case, "abc" will go in the pool and s will refer to it.
String s = new String("abc"); // creates two objects,
// and one reference variable*
उपरोक्त विवरण कितने संदर्भ चर कोड के नीचे की println बयान करने से पहले बनाए गए थे कितने स्ट्रिंग वस्तुओं और के आधार पर?
String s1 = "spring ";
String s2 = s1 + "summer ";
s1.concat("fall ");
s2.concat(s1);
s1 += "winter ";
System.out.println(s1 + " " + s2);
मेरा जवाब था इस कोड टुकड़ा का परिणाम वसंत सर्दियों वसंत गर्मियों
है दो संदर्भ चर, एस 1 और s2 रहे हैं। इस प्रकार बनाई गई आठ स्ट्रिंग ऑब्जेक्ट्स थीं: "वसंत", "गर्मी" (खो गई), "वसंत गर्मी", "गिरावट" (खो गई), "वसंत गिरावट" (खो गई), "वसंत ग्रीष्म ऋतु" (खो गया), "सर्दियों" (खोया), "वसंत सर्दियों" (इस बिंदु पर "वसंत" खो गया है)।
इस प्रक्रिया में केवल आठ स्ट्रिंग ऑब्जेक्ट्स में से केवल दो खो नहीं गए हैं।
क्या यह सही है?
कुछ जानना अच्छा है: http://stackoverflow.com/questions/7663252/java-string-concat-in-stringbuilder-call/ ध्यान दें कि इस प्रश्न का मेरा जवाब गलत था ... – Gevorg