# Unterschied zwischen equals und == ?



## che (4. Nov 2005)

Hallo!

Kann mir jemand den Unterschied zwischen equals() und den == Operator erklären? Ich kann doch mit beiden Objekte vergleichen, oder?


----------



## bygones (4. Nov 2005)

equals vergleicht wirklich die Gleichheit der Objekte (also die strukturelle Gleichheit)
== vergleich ob die Objekte die selben sind (d.h. die selbe Speicheradresse belegen), also identisch


----------



## AlArenal (4. Nov 2005)

Stimmt natürlich nur bedingt.. equals() ist nur so schlau wie der Entwickler der Klasse für dessen Instanz man es aufruft. Benutzt man equals() bei ner eigenen Klasse, muss man es natürlich entsprechend vorher überschreiben....


----------



## Sky (4. Nov 2005)

Ein paar Worte dazu findet man auch in der FAQ: http://www.java-forum.org/de/viewtopic.php?t=1528


----------



## Sky (4. Nov 2005)

AlArenal hat gesagt.:
			
		

> Benutzt man equals() bei ner eigenen Klasse, muss man es natürlich entsprechend vorher überschreiben....


.... sonst ist das Ergebnis von equals() gleich dem Ergebnis von '==', da dies in der Klasse Object so definiert ist.


----------



## Bleiglanz (4. Nov 2005)

ganz einfaches Beispiel

```
new String("foo") == new String("foo")
```
ist IMMER falsch, weil du mit new ein neues Objekterzeugst

aber

```
new String("foo").equals(new String("foo"))
```
ist true, weil bei equals - nicht durch die JVM, sondern die Programmierer der Stringklasse - geprüft wird, ob die Strings gleich sind (gleiche buchstaben an der selben stelle)


----------



## che (4. Nov 2005)

> in paar Worte dazu findet man auch in der FAQ: http://www.java-forum.org/de/viewtopic.php?t=1528



Ok, das erklärt einiges. Danke!!


----------

