„Ich möchte dir zeigen, wie man Variablen in Java vergleichen kann.

„Du kennst bereits die einfachsten Vergleichsoperatoren – kleiner als (<) und größer als (>).“

„Ja.“

„Es gibt auch Operatoren wie gleich (==) und ungleich (!=). Außerdem kleiner als oder gleich (<=) und größer als oder gleich (>=).“

„Jetzt wird die Sache interessant.“

„Beachte, dass es die Operatoren =< oder => in Java nicht gibt!“

„Das Zeichen = wird für Zuweisungsoperationen verwendet. Deshalb werden zwei Gleichheitszeichen (==) verwendet, um die Gleichheit zu prüfen. Um zu überprüfen, ob Variablen nicht gleich sind, verwende den Operator !=.“

„Ach so.“

„Wenn wir zwei Variablen in Java mit dem ==-Operator vergleichen, vergleichen wir den Inhalt der Variablen.“

„Also werden bei primitiven Variablen deren Werte verglichen.“

„Bei Referenzvariablen werden die Referenzen verglichen. Angenommen, wir haben identische, aber eigenständige Objekte. Weil Referenzen auf sie unterschiedlich sind, zeigt ein Vergleich der beiden an, dass sie nicht gleich sind, d.h. das Ergebnis des Vergleichs lautet false. Ein Vergleich von Referenzen ist nur dann true, wenn beide Referenzen auf das gleiche Objekt verweisen.

„Zum Vergleichen der internen Inhalte von Objekten verwenden wir die spezielle Methode equals. Diese Methode (und alle Methoden der Objektklasse) werden vom Compiler zu deiner Klasse hinzugefügt, auch wenn du sie nicht deklarierst. Ich will dir einige Beispiele zeigen:“

Code Erläuterung
1
int a = 5;
int b = 5;
System.out.println(a == b);
Vergleiche primitive Typen.
true wird auf dem Bildschirm angezeigt.
2
Cat cat1 = new Cat("Oscar");
Cat cat2 = cat1;
System.out.println(cat1 == cat2);
Vergleiche Referenzen.
true wird auf dem Bildschirm angezeigt.
Beide Variablen enthalten Referenzen auf das gleiche Objekt.
3
String s = new String("Mom");
String s2 = s;
System.out.println(s == s2);
Vergleiche Referenzen.
true wird auf dem Bildschirm angezeigt.
Beide Variablen enthalten Referenzen auf das gleiche Objekt.
4
Cat cat1 = new Cat("Oscar");
Cat cat2 = new Cat("Oscar");
System.out.println(cat1 == cat2);
Vergleiche Referenzen.
false wird auf dem Bildschirm angezeigt.
Die beiden Variablen referenzieren identische Katze-Objekte, aber nicht das gleiche.
5
String s = new String("Mom");
String s2 = new String("Mom");
System.out.println(s == s2);
Vergleiche Referenzen.
false wird auf dem Bildschirm angezeigt.
Die beiden Variablen referenzieren identische String-Objekte, aber nicht das gleiche.
6
String s = new String("Mom");
String s2 = new String("Mom");
System.out.println(s.equals(s2));
Vergleiche Objekte.
true wird auf dem Bildschirm angezeigt.
Die beiden Variablen referenzieren identische Katze-Objekte.

„Oh, das hätte ich fast vergessen! Hier sind ein paar Übungen für dich:“