Mögliche Duplizieren:
Questions about Java's String poolÜber das Schlüsselwort "new" in Java
Jungs, was der Unterschied zwischen diesen beiden ist.
(1)
String s = new String("hello"); // creating an object on heap then assign that object to the reference s.
(2)
String s = "hello" // did I make an object here?? Im not using the word new.
Auch Array Beispiel
int x[] = {1, 2, 3, 4, 5}; // did I make object here?
nur als Hinweis verwendet werden können, wird die Zeichenfolge literal ein Sourcecode-Darstellung eines vordefinierten Stringobjekt. Mit dem neuen Schlüsselwort erstellen Sie also eine * Kopie * eines vorhandenen String-Objekts. Sie enden also mit 2 String-Objekten anstelle von einem. –
so String s = "Hallo" hat kein neues Objekt erstellt ?? Ich dachte in Java ist alles ein Objekt ?? – user1293258
@ user1293258: Es ist ein Objekt, es ist nur ein * String-Literal *. Das jvm verwaltet einen * Pool * von String-Literalen und verwendet dasselbe Objekt erneut. Also, im Assessment 's =" Hallo "' und wenn später 's' mit' "Hallo" 'verglichen wird, wird das gleiche String-Literal verwendet - welches das gleiche Objekt ist. Und in Bezug auf: 'Ich dachte in Java ist alles ein Objekt '- es ist nicht wahr. 'int',' boolean' [und alle anderen * primitiven Typen *] sind ** nicht ** Objekte. – amit