2017-02-18 3 views
-3

ich gelesen, dassin Java, warum wird empfohlen, equals() beim Vergleichen von veränderbaren Objekten zu verwenden?

in der Regel verwenden wir equals() zum Vergleichen unveränderliches Objekt, wo == für veränderbares Objekt verwendet wird

Ich kenne die Unterschiede zwischen Gleichen und „== ", aber warum ist es vorzuziehen, für unveränderliche Objekte gleich zu verwenden? und warum "==" für veränderbare Objekte verwenden? in meiner Logik, wenn ich zwei Objekte vergleichen will (Vergleiche Zustand, nicht Identität), also warum es nicht empfohlen wird, equals() zu verwenden?

+4

wo hast du das gelesen? – ByeBye

+3

Ja, das ist komplett BS. Sie sollten vorsichtiger sein, was Sie lesen. Offensichtlich verstehst du * nicht den Unterschied zwischen '==' und 'equals()', wenn du mit dem, was du geschrieben hast, nichts falsch findest. – Kayaman

+0

'==' vergleicht ** Referenzen **, wenn mit Objekten verwendet. Es spielt keine Rolle, ob das Objekt veränderbar oder unveränderlich ist. –

Antwort

2

equals ist immer verwendet, um die Werte von Objekten zu vergleichen. Es wird verwendet, um Werte von unveränderlichen Objekten wie String oder Integer oder veränderbare Objekte wie List oder Map unter anderem zu vergleichen.

Es gibt keine Frage von veränderbaren oder unveränderlichen Objekten, wenn es darum geht, die Gleichheit zweier Objekte mit equals zu vergleichen.

Auf der anderen Seite vergleicht das Symbol == rein, ob zwei Referenzen die gleichen sind oder auf das gleiche Objekt zeigen.


Hoffe, das hilft!

Verwandte Themen