• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

StringBuffer

 
aakash bhatt
Ranch Hand
Posts: 182
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi all,
Why in StringBuffer class in both the cases it returns false
StringBuffer sb1 = new StringBuffer("Amit");
StringBuffer sb2= new StringBuffer("Amit");
System.out.println(sb1==sb2);
System.out.println(sb1.equals(sb2));
Regards,
aakash
 
Arun Boraiah
Ranch Hand
Posts: 233
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
In case of �==�object reference are compared. Hence it returns false since sb1 and sb2 are in two different location.
Since equals method is not overridden in StringBuffer class. Default implementation from Object class is present in StringBuffer. The default implemation is again check for object reference, not the object value. Hence since sb1 and sb2 are referring different
memory location in the second case also it is returns false.
 
aakash bhatt
Ranch Hand
Posts: 182
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi Arun,
How should I compare 2 StringBuffer values for equality
 
Thomas Paul
mister krabs
Ranch Hand
Posts: 13974
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Convert them to Strings and then do an .equals
if (sb1.toString().equals(sb2.toString()))
 
Arun Boraiah
Ranch Hand
Posts: 233
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
just an extension to Thomas suggestion. Make sure that sb1 and sb2 is never null.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic