String s = neuer String ("xyz"). Wie viele Objekte wurden erstellt, nachdem diese Codezeile ausgeführt wurde?

Die allgemein übliche Antwort auf diese Interviewfrage ist, dass zwei Objekte vom Code erstellt werden. Aber ich denke nicht so; Ich habe einen Code zur Bestätigung geschrieben.

public class StringTest {
    public static void main(String[] args) {
        String s1 = "a";
        String s2 = "a";
        String s3 = new String("a");
        System.out.println("s1: "+s1.hashCode());
        System.out.println("s2: "+s2.hashCode());
        System.out.println("s3: "+s3.hashCode());
    }
}

Die Ausgabe ist:

Bedeutet dies, dass nur ein Objekt erstellt wurde?

Bekräftigen Sie: Meine Frage ist, wie viele Objekte mit dem folgenden Code erstellt wurden:

String s = new String("xyz")

Anstatt derStringTest Code.

Inspiriert von @Don Branson, habe ich den folgenden Code getestet:

public class test {
    public static void main(String[] args) {
        String s = new String("abc");
    }
}

Und das Ergebnis ist:

Die ID von s ist 84 und die ID von "abc" ist 82. Was genau bedeutet das?

Antworten auf die Frage(19)

Ihre Antwort auf die Frage