How would the program change if the second statement were changed to:
String str2 = "String Literal" ; // small difference
Now, since the second literal is not identical to the first, two
literal string objects are created, and
variables str1
and str2
refer to
different objects.
equal()
The ==
determines if two
names both refer to the same object.
It is common in the real world (and in programs) for an object to
have several names, for example "Mark Twain" and "Samuel Clemens"
are two names for the same author.
Consider two strings:
String strA = new String ("The Gingham Dog"); String strB = strA;
strA
==
strBstrA.
equals( strB )
For strings, it is always true that if ==
says true, then so will equals()
.
However, this is not neccesarily true for other object types.
For example, you can define your own objects and define your own behavior for
their equals()
method.