Es gibt zwei Objekte, jedes mit einer eindeutigen Referenz. Es gibt zwei Referenzvariablen, jede enthält eine andere Referenz.
Der == -Operator sieht nach dem Inhalt
der beiden Referenzvariablen.
Wenn der Inhalt beider Referenzvariablen der gleiche ist,
dann ist das Ergebnis true.
Andernfalls ist das Ergebnis false.
Da jedes Objekt eine eindeutige Referenz hat,
stellt der Operator fest, ob zwei Referenzvariablen auf dasselbe Objekt verweisen.
Der == -Operator sieht NICHT nach Objekten!
Er betrachtet nur Referenzen (Information darüber, wo ein Objekt aufzufinden ist.)
Hier ist ein Teil des vorherigen Programms mit einer zusätzlichen if-Anweisung:
String strA; // Referenz auf das erste Objekt
String strB; // Referenz auf das zweite Objekt
strA = new String( "Der Gingham Hund" ); // Das erste Objekt erzeugen und
// seine Referenz speichern.
System.out.println( strA ); // Der Referenz auf das erste
// Objekt folgen und Daten ausgeben.
strB = new String( "Die Calico Katze" ); // Das zweite Objekt erzeugen und
// seine Referenz speichern.
System.out.println( strB );
if ( strA == strB )
System.out.println( "Dies wird nicht ausgegeben.");
|
Da die Referenz in strA anders ist als die Referenz in strB, ist
strA == strB
false. (Betrachten Sie die Abbildung der vorherigen Seite.)
Die dritte Ausgabeanweisung wird nicht ausgeführt.