Java Strings vergleichen mit == und .equals?

2 Antworten

Str3 und Str4 verweisen auf das selbe Objekt.


class StringStorage {
    public static void main(String args[])
    {
        String s1 = "TAT";
        String s2 = "TAT";
        String s3 = new String("TAT");
        String s4 = new String("TAT");
        System.out.println(s1);
        System.out.println(s2);
        System.out.println(s3);
        System.out.println(s4);
    }
}

Bild zum Beitrag

Quelle:

https://www.geeksforgeeks.org/strings-in-java/

Woher ich das weiß:Recherche
 - (programmieren, Java, IntelliJ IDEA)
RedDevil1982 
Fragesteller
 17.05.2023, 20:11

Ok. Danke. Wenn du so ne Fragestellung hast, wo du nicht weiterkommst. Wie findest du hierzu schnelle eine Lösung im Netz. Bist du jetzt einfach die Seite gegangen und hast das Problem eingegeben?

0
Tyldu  17.05.2023, 20:17
@RedDevil1982

in deiner situation hätte ich wohl nach "how do strings work in java" gesucht. da findest du dann auch genau die seite verlinkt wurde

1
RedDevil1982 
Fragesteller
 17.05.2023, 20:20
@Tyldu

Wenn ich z. B. ne Erklärung für Array.Lists Maps oder Generics brauche in Java
Selbes Spiel How do an Array.List work in Java....

0
Tyldu  17.05.2023, 20:22
@RedDevil1982

jo zb.

mit der zeit merkst du dann auch welche seiten gut sind und welche schlecht

falls du nichts hilfreiches findest musst du halt etwas rumprobieren mit den suchbegriffen

hauptsache immer auf englisch googeln

0
RedDevil1982 
Fragesteller
 17.05.2023, 20:22
@Tyldu

Kannst du mir bestimmte Seiten empfehlen die "gut" sind?

0
Tyldu  17.05.2023, 20:24
@RedDevil1982

puh, bei java eher weniger aber geeksforgeeks is meistens schon mal ok
sonst noch die offiziellen java docs aber da ist es dann schon sehr technisch und stackoverflow ist natürlich auch immer gold wert

1
Computihack  17.05.2023, 20:24
@RedDevil1982

Tatsächlich wusste ich die Antwort aber hab ne Quelle im Internet gesucht. Dafür hab ich hier einfach das Problem zusammengefasst. Es geht darum was macht == und was macht .equals. Denn wenn ich weiß was der Unterschied ist, dann weiß ich auch was die Antwort ist. Und und wenn man nichts gutes findet, dann einfach eingrenzen. Und es hilft auch die Sachen auf englisch zu Googlen. Zumindest finde ich dass. Was auch eine Option ist, mit Chat gpt zu arbeiten. Da schilderst du dein Problem, und fragst nach einer such query z.b.:

Frage: Give a search term that gives the Google results for finding an answer to this problem: why is with String s1 =„1“; String s2 = „1“; String s3 = new String(„1“); String s4 = new String(„1“); s1==s2 true and s1.equals(s2) = true but not s3==s4

Antwort: Java string comparison and object equality

Man kann die Frage noch ein bisschen abändern, aber im Prinzip ist das ein guter Anfang um zu lernen wie man Google. Was übrigens sehr viele nicht können.

2
Computihack  17.05.2023, 20:29
@Tyldu

Genau. Entweder auf strings gehen oder auf == und .equals().

1

Moin,

mit new String erzeugst du ein neues String-Objekt, das seinen eigenen Platz im Arbeitsspeicher hat. Du überprüfst dann mit ==, ob es sich um dasselbe Objekt handelt und nicht, ob es sich um denselben Inhalt handelt.

LG Der1Streber