Ich wollte klären, ob ich das richtig verstanden habe:
==
ist ein Referenzvergleich, d.h. beide Objekte zeigen auf denselben Speicherplatz.equals()
wertet den Vergleich der Werte in den Objekten
Ich wollte klären, ob ich das richtig verstanden habe:
==
ist ein Referenzvergleich, d.h. beide Objekte zeigen auf denselben Speicherplatz.equals()
wertet den Vergleich der Werte in den ObjektenDie Methode equals() vergleicht hauptsächlich den ursprünglichen Inhalt des Objekts.
Wenn wir schreiben
String s1 = "Samim";
String s2 = "Samim";
String s3 = new String("Samim");
String s4 = new String("Samim");
System.out.println(s1.equals(s2));
System.out.println(s2.equals(s3));
System.out.println(s3.equals(s4));
Die Ausgabe wird sein
true
true
true
Denn die Methode equals() vergleicht den Inhalt des Objekts. in der ersten System.out.println() ist der Inhalt von s1 und s2 gleich, deshalb wird true gedruckt. Und bei den anderen beiden ist System.out.println() wahr.
Nochmals,
String s1 = "Samim";
String s2 = "Samim";
String s3 = new String("Samim");
String s4 = new String("Samim");
System.out.println(s1 == s2);
System.out.println(s2 == s3);
System.out.println(s3 == s4);
Die Ausgabe wird sein
true
false
false
Denn der == Operator vergleicht hauptsächlich die Referenzen des Objekts und nicht den Wert. Im ersten System.out.println() sind die Referenzen von s1 und s2 gleich, weshalb es true zurückgibt.
In der zweiten System.out.println() wird das Objekt s3 erstellt, deshalb wird eine weitere Referenz von s3 erstellt, und die Referenzen von s2 und s3 unterscheiden sich, aus diesem Grund wird "false" zurückgegeben.
Die dritte System.out.println() folgt den Regeln der zweiten System.out.println(), weshalb sie "false" zurückgibt.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.