aspose file tools*
The moose likes Mock Exam Errata and the fly likes String and StringBuffer Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Certification » Mock Exam Errata
Bookmark "String and StringBuffer" Watch "String and StringBuffer" New topic
Author

String and StringBuffer

Vineet Sharma
Ranch Hand

Joined: Dec 30, 2000
Posts: 51
For the following code:
public class abc
{
public static void main(String args[])
{
StringBuffer sb1 = new StringBuffer("Amit");
StringBuffer sb2 = new StringBuffer("Amit");
String ss1 = "Amit";
System.out.println(sb1==sb2);
System.out.println(sb1.equals(sb2));
System.out.println(sb1.equals(ss1));
}
}

The answer is false false false and I verified it. Why is it not true true and false? Please explain...

Thanks and Regards
Vineet
mahesh jhamtani
Greenhorn

Joined: Jan 12, 2001
Posts: 11
For your answer program should be like that:

public class abc
{
public static void main(String args[])
{
StringBuffer sb1 = new StringBuffer("Amit");
StringBuffer sb2 = new StringBuffer("Amit");
String ss1 = "Amit";
System.out.println(sb1.toString().equals(sb2.toString()));
System.out.println(sb1.toString().equals(sb2.toString()));
System.out.println(sb1.equals(ss1));
}
}
Son Le
Greenhorn

Joined: Jan 15, 2001
Posts: 21
Vineet,
This is a follow-up from Mahesh's message
System.out.println(sb1==sb2) : false because sb1 and sb2 reference to 2 different objects.
System.out.println(sb1.equals(sb2)): false
System.out.println(sb1.equals(ss1)): false
The 2 lines above are false because StringBuffer doesn't override the equals() methods inherited from the Object class. Calling equals() will only check if they reference the same object or not.

-LHS
Golam Newaz
Ranch Hand

Joined: Jan 08, 2001
Posts: 64
I am completely agree with Mahesh and son le. Because using
'==' this operator, we cann't compare two different objects.
In every time it would be two values of the same object.
Here sb1 and sb2 are different objects. So when you will
compare two objects definitely you have to convert your
Objects into Strings using 'toString()' method. Here Mahesh
did it.
Thanks,
Sayeed
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: String and StringBuffer