class strb
{
static public void main(String...string)
{
StringBuilder s1 = new StringBuilder("Test");
StringBuilder s2 = new StringBuilder("Test");
System.out.println(s1);
System.out.println(s2);
System.out.println(s1==s2);
System.out.println(s1.equals(s2)); //Line 1
System.out.println(s1.toString()==s2.toString()); //Line 2
if(s1.toString()==s2.toString())System.out.println("True"); //Line 3
}
}
और उत्पादनStringBuilder .equals जावा
Test
Test
false
false
बस .equals पर एक त्वरित सवाल है है।
ऑब्जेक्ट सामग्री के बावजूद, क्या असमानता केवल तभी सही होती है जब ऑब्जेक्ट संदर्भ दोनों एक ही ऑब्जेक्ट को इंगित करते हैं?
==========
संपादित करें: अब मैं .equals के बारे में हिस्सा समझते हैं लेकिन क्यों लाइन 2 और लाइन 3 भी सच वापस नहीं करता है?
संपादित करें: मेरा मानना है कि == संदर्भ चर के पते पर लग रहा है और इतने एस 1 और s2 मुझे equal.correct नहीं किया जा सकता है, तो मेरी धारणा सही
इस धागे को देखें http://stackoverflow.com/questions/11112602/why-does-stringbuffer-stringbuilder-not-override-equals-or-hashcode और http://stackoverflow.com/questions/11007387/what- एक कुशल-तरीके-से-तुलना-स्ट्रिंगबिल्डर-ऑब्जेक्ट्स – krishnakumarp