Sie versuchen, zwei verschiedene Objekte und nicht ihre Werte zu vergleichen. z und h zeigen auf zwei verschiedene Integer-Objekte, die denselben Wert haben.
z == h
prüft, ob zwei Objekte gleich sind. Also wird es falsch zurückgeben.
Wenn Sie die Werte, die mit dem Integer-Objekt gespeichert wurden, vergleichen möchten, verwenden Sie die Methode equals
.
Integer z = new Integer(43); // Object1 is created with value as 43.
z++; // Now object1 holds 44.
Integer h = new Integer(44); // Object2 is created with value as 44.
So am Ende haben wir zwei verschiedene Integer-Objekt, dh object1 und object2 mit Wert als 44. Jetzt
z = h
Dies wird überprüfen, ob Objekte von z und h gezeigt wird, gleiche . dh object1 == object2
was falsch ist. Wenn Sie
Integer z = new Integer(43); // Object1 is created with value as 43.
z++; // Now object1 holds 44. Z pointing to Object1
Integer h = z; // Now h is pointing to same object as z.
z == h
wird nun tun return true.
könnte Diese http://www.programmerinterview.com/index.php/java-questions/java-whats-the-difference-between-equals-and/ helfen diese
Ich habe gelernt, dass == überprüft, ob die Gleichheit der Referenzen des Objekts gleich ist. Kannst du mir sagen, wie ich die Referenzen in diesem Fall gleich machen kann? –
@HimanshuAggarwal: Die Referenz ist gleich, wenn beide Referenzvariablen auf dasselbe Objekt zeigen. Sie möchten Werte oder Referenzen vergleichen? – xyz
@HimanshuAgargarwal: Ich habe meine Antwort aktualisiert, um es klarer zu machen. – xyz