G
Guest
Gast
hey,
eigentlich dachte ich, ich verstehe den unterschied. laut meinem skript:
== vergleicht auf identität, d.h. gleiche speicherstelle im hauptspeicher (bei objekten jetzt).
equals vergleicht auch gleichheit, also ob z.B. das herz ass gleich der herz 9 ist (braucht also je nach anwendung auch ein override)
so, jetzt aber:
String s1 = "hallo";
String s2 = "hallo";
System.out.println(s1 == s2)
ergibt: TRUE
warum denn das? ich dachte, man soll Stringsmit equals vergleichen, wieso ergibt nun aber auch mit == true?
Strings sind doch eigentlich auch (halb-)Objekte in Java oder? Und sie sind nicht veränderbar, d.h. er müsste doch für s1 und s2 zwei Objekte im Hauptspeicer angelegt haben.
Aber dann müsste die Identität (==) doch false sein?
Wieso ist es aber bei Strings nicht so?
eigentlich dachte ich, ich verstehe den unterschied. laut meinem skript:
== vergleicht auf identität, d.h. gleiche speicherstelle im hauptspeicher (bei objekten jetzt).
equals vergleicht auch gleichheit, also ob z.B. das herz ass gleich der herz 9 ist (braucht also je nach anwendung auch ein override)
so, jetzt aber:
String s1 = "hallo";
String s2 = "hallo";
System.out.println(s1 == s2)
ergibt: TRUE
warum denn das? ich dachte, man soll Stringsmit equals vergleichen, wieso ergibt nun aber auch mit == true?
Strings sind doch eigentlich auch (halb-)Objekte in Java oder? Und sie sind nicht veränderbar, d.h. er müsste doch für s1 und s2 zwei Objekte im Hauptspeicer angelegt haben.
Aber dann müsste die Identität (==) doch false sein?
Wieso ist es aber bei Strings nicht so?