Java verfügt über einen String-Pool, unter dem Java die Speicherzuweisung für die String-Objekte verwaltet. Siehe String-Pools in Java
Wenn Sie zwei Objekte mit der Funktion ==
Operator vergleicht er die Adressgleichheit mit dem String-Pool. Wenn die beiden String-Objekte die gleichen Adressreferenzen haben, gibt er true
sonst false
. Wenn Sie jedoch den Inhalt von zwei String-Objekten vergleichen wollen, müssen Sie die Funktion equals
Methode.
equals
ist eigentlich eine Methode der Klasse Object, aber sie wird in der Klasse String überschrieben und es wird eine neue Definition gegeben, die den Inhalt von Object vergleicht.
Example:
stringObjectOne.equals(stringObjectTwo);
Aber achten Sie auf den Fall von String. Wenn Sie einen Vergleich ohne Berücksichtigung der Groß-/Kleinschreibung wünschen, müssen Sie die Methode equalsIgnoreCase der Klasse String verwenden.
Schauen wir mal:
String one = "HELLO";
String two = "HELLO";
String three = new String("HELLO");
String four = "hello";
one == two; // TRUE
one == three; // FALSE
one == four; // FALSE
one.equals(two); // TRUE
one.equals(three); // TRUE
one.equals(four); // FALSE
one.equalsIgnoreCase(four); // TRUE