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.