2016-12-14 2 views
1

Wenn wir erklären eine Stringliteral wieObjekterstellung zum Zeitpunkt der Deklaration eines String in Java

String str = "abc"; 

nur ein Objekt in String-Pool erstellt wird. Aber wenn wir es wie

String str = new String("abc"); 

2 Objekte erzeugt man im Heap-Speicher andere im String-Pool erstellen. Was ist der Zweck der Erstellung eines Eintrags im String-Pool, wenn Sie bereits ein Objekt im Heap-Speicher platziert haben?

+0

ein 'String' Objekt explizit von einem Stringliteral anlegen, wie Sie im zweiten Beispiel tun, ist nie sinnvoll. Sie müssen diese Art von Code niemals in einer echten Java-Anwendung schreiben. – Jesper

+0

Ähm, was denkst du wird zuerst erstellt? Der Konstruktorparameter oder das Objekt, das durch Aufruf des Konstruktors erstellt wurde? – fabian

Antwort

Verwandte Themen