Ich möchte mit ein paar Zeilen Code, dass in Java, dass zum Vergleichen zweier Zeichenfolgen (String
), müssen Sie equals()
anstelle des Operators ==
zu demonstrieren.Demonstrieren Zeichenfolge Vergleich mit Java
Hier ist etwas, was ich versucht:
public static void main(String Args[]) {
String s1 = "Hello";
String s2 = "Hello";
if (s1 == s2)
System.out.println("same strings");
else
System.out.println("different strings");
}
Ich hatte erwartet, diese Ausgabe: different strings
, denn mit dem Test s1 == s2
ich eigentlich bin zwei Referenzen zu vergleichen (das heißt Adressen) anstelle des Inhalts der objet.
Aber ich habe tatsächlich diese Ausgabe: same strings
!
Im Internet surfen Ich fand, dass einige Java-Implementierung wird den obigen Code optimieren, so dass s1
und s2
wird tatsächlich die gleiche Zeichenfolge verweisen.
Nun, wie kann ich das Problem mit dem Operator ==
beim Vergleich von Strings (oder Objekte) in Java demonstrieren?
Eigentlich sollten alle Java-Compiler per JLS diese Optimierung durchführen. – Darron