Angesichts der beiden unten stehenden toString()
-Implementierungen, welche ist bevorzugt:
public String toString(){
return "{a:"+ a + ", b:" + b + ", c: " + c +"}";
}
oder
public String toString(){
StringBuilder sb = new StringBuilder(100);
return sb.append("{a:").append(a)
.append(", b:").append(b)
.append(", c:").append(c)
.append("}")
.toString();
}
?
Noch wichtiger ist, dass wir nur 3 Eigenschaften haben und es keinen Unterschied machen könnte, aber ab wann würden Sie von der Verwendung von +
für die Konkatenierung zu StringBuilder
wechseln?
63 Stimmen
An welchem Punkt wechseln Sie zu StringBuilder? Wenn es sich auf den Speicher oder die Leistung auswirkt. Oder wenn es sein könnte. Wenn Sie dies wirklich nur einmal für ein paar Zeichenfolgen tun, keine Sorgen. Aber wenn Sie es immer wieder tun werden, sollten Sie einen messbaren Unterschied feststellen, wenn Sie StringBuilder verwenden.
1 Stimmen
Was bedeutet 100 als Parameter?
3 Stimmen
@Unbekannt 100 ist die Anfangsgröße des StringBuilder
1 Stimmen
@nonsequitor Also werden die maximalen Zeichen 100 sein?
12 Stimmen
@Unbekannt nein nur die anfängliche Größe, wenn Sie die ungefähre Größe des Strings kennen, mit dem Sie arbeiten, können Sie
StringBuilder
mitteilen, wie viel Speicher vorab zuzuweisen ist, sonst wird, wenn der Speicherplatz ausgeht, die Größe verdoppelt, indem ein neueschar[]
Array erstellt und die Daten kopiert werden - was teuer ist. Sie können schummeln, indem Sie die Größe angeben und dann ist keine Notwendigkeit für diese Arrayerstellung - also, wenn Sie denken, dass Ihr String ~100 Zeichen lang sein wird, dann können Sie den StringBuilder auf diese Größe setzen und er wird intern nie erweitert werden müssen.0 Stimmen
Verwandte Dokumentation: stackoverflow.com/documentation/java/109/strings/5280/…
0 Stimmen
Es ist dasselbe intellij-support.jetbrains.com/hc/de/community/posts/…