The function .equal() checks the actual contents of the object, whereas == operator checks whether the references to the objects are same.
Lets take an example
String str 1 = new String("abc");
String str 2 = new String("abc");
So if you have to compare content of str 1 and str 2 , we should do it using str1.equals(str2) which will return true in this case.
str1==str2 will be false as str1 and str2 pointing to 2 different objects in memory.
Now if we do
str1=str2
then str1 will point to the same object which str2 is pointing, So if(str1==str2) will be true.
Now Lets see another example -
String str1 = new String("abc");
String str2 = new String("abc");
str1=str2
Now If you try to do if (str1==str2) , it will return true as well as str1.equal(str2)
** equals is the method of object class and hence applicable to all objects and not just String object.
200 Core Java Interview Question and Answers