Ich möchte den Unterschied in zwei Ansätze kennen. Es gibt einige alte Codes, an denen ich jetzt arbeite, wo sie primitive
Werte auf einen String
Wert durch Verketten mit einem leeren String ""
setzen.String.valueOf (someVar) vs ("" + someVar)
obj.setSomeString("" + primitiveVariable);
Aber in diesem Link Size of empty Java String es sagt, dass Wenn Sie für jede Instanz eine separate leere Zeichenfolge erstellen, dann nimmt das wird offensichtlich mehr Speicher.
Also dachte ich an valueOf
Methode in String
Klasse. Ich überprüfte die Dokumentation String.valueOf() es sagt Wenn das Argument null ist, dann eine Zeichenfolge gleich "null"; Andernfalls wird der Wert von obj.toString() zurückgegeben.
so das man der bessere Weg
obj.setSomeString("" + primitiveVariable);
obj.setSomeString(String.valueOf(primitiveVariable));
Der oben beschriebene Prozess der innerhalb eines List
Iteration durchgeführt wird, die eine Größe von mehr als 600 aufweist, und wird voraussichtlich in Zukunft steigen.
Sie haben den Hauptpunkt der verknüpften Antwort falsch verstanden. Sie erstellen ** nicht ** eine neue Instanz. – luk2302
aber wenn wir einen leeren String codieren und die entsprechende Klasse ausgeführt wird, wird ein String-Objekt für diesen leeren String erstellt, oder? –
@ luk2302 Ja ist es. Das ist, was zurückkehrt. –