StringBuffer anstatt +=

Status
Nicht offen für weitere Antworten.

Sanix

Top Contributor
Man soll ja anstatt += einen StringBuffer oder StringBuilder verwenden. Was passiert wenn ich sowas verwende?:

Code:
sb.append("string1" + "string2");

Werden da wieder Strings aneinandergereiht, oder kommt es aufs gleiche raus wie:
Code:
sb.append("string1);
sb.append("string2");
 

_charly_

Mitglied
also ich kenn die 2te variante gar nicht - denke die einfache stringverkettung mit + kann man durchaus verwenden - wüsste nicht was dagegen spricht...

wenn ich zu einem String was dranhängen will dann verwend ich String.concat - bsp:

Code:
generation.concat(" " + 0 + ";");

bin mir aber nicht sicher was du mit stringbuffern und buildern genau willst...
 

Wildcard

Top Contributor
_charly_ hat gesagt.:
also ich kenn die 2te variante gar nicht - denke die einfache stringverkettung mit + kann man durchaus verwenden - wüsste nicht was dagegen spricht...
Bei String + String wird für jeden String ein neuer Buffer erzeugt. In einer Schleife angewendet verlangsamt sich die Methode teilweise um Faktor 1000 oder mehr, das spricht dagegen :wink:

@Sanix:

Bei konstanten Strings läuft das etwas anders, die werden vom Compiler optimiert, bei Strings in Variablen würde das wohl etwa so aussehen:
sb.append(new StringBuffer("string1").append("string2"));
 

hupfdule

Top Contributor
_charly_ hat gesagt.:
also ich kenn die 2te variante gar nicht - denke die einfache stringverkettung mit + kann man durchaus verwenden - wüsste nicht was dagegen spricht...

Die Geschwindigkeit. Bei zwei einfachen Strings seh ich da kein Problem, nur bei der Aneinnanderreihung vieler Strings kommt es wirklich zum Tragen.

Im ersten Fall würde sicherlich wieder eine String-konkatenation gemacht (sofern es der Compiler nicht herausoptimieren kann). Also wenn es zeitkritisch sein soll, dann die erste Version verwenden.

Aber auch daran denken, dass nichts optimiert werden muss, so lange nicht klar ist, dass es notwendig ist.
 

Wildcard

Top Contributor
hupfdule hat gesagt.:
Aber auch daran denken, dass nichts optimiert werden muss, so lange nicht klar ist, dass es notwendig ist.
StringBuilder zu verwenden sobald viele Strings verkettet werden ist eigentlich keine Optimierung, sondern alles andere ist 'ne Totsünde :wink:
 

Sanix

Top Contributor
Wildcard hat gesagt.:
hupfdule hat gesagt.:
Aber auch daran denken, dass nichts optimiert werden muss, so lange nicht klar ist, dass es notwendig ist.
StringBuilder zu verwenden sobald viele Strings verkettet werden ist eigentlich keine Optimierung, sondern alles andere ist 'ne Totsünde :wink:

Vielen Dank. Dann macht der Compiler das. Hatte ich gehofft.
Definitiv eine Todsünde. Meine Applikation hatte deswegen 30 Sekunden länger, als sie sollte.
 

byte

Top Contributor
Sanix hat gesagt.:
Meine Applikation hatte deswegen 30 Sekunden länger, als sie sollte.

Heureka! Ich frage jetzt lieber nicht, wo die ganzen Strings überhaupt herkommen. Für gewöhnlich hat man doch nur mit Strings in der toString() zu tun oder beim Logging. Es sei denn man schreibt vielleicht einen Parser für irgendwelche Textformate. ;)
 

Sanix

Top Contributor
War eine Webapplikation, die ich mal gemacht habe. Dort habe ich die ganze HTML Tabelle zusammengebaut, weils nicht anders ging (wegen speziellen formatierungen). Und nachher halt ausgeben lassen.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Compiler -> unendliche Schleife (StringBuffer?) Warum? Java Basics - Anfänger-Themen 2
C Stringbuffer auf Zeilenumbruch überprüfen Java Basics - Anfänger-Themen 14
A StringBuffer Java Basics - Anfänger-Themen 1
H Wie wandel ich ein Datum in eine Zeichenkette um mit StringBuffer? Java Basics - Anfänger-Themen 3
S Dateien/LinkedList/StringBuffer - SOrtierung klappt nicht so ganz Java Basics - Anfänger-Themen 2
D Input/Output Stringbuffer Befehle bei Konvertierung in String Java Basics - Anfänger-Themen 19
B Wie wichtig ist Verwendung von StringBuffer in Schleifen? Java Basics - Anfänger-Themen 10
C Elemente im StringBuffer ersetzen Java Basics - Anfänger-Themen 19
F Problem bei Rückgabe von StringBuffer aus Methode Java Basics - Anfänger-Themen 6
M StringBuffer Java Basics - Anfänger-Themen 2
K Alle vorkommen eines Zeichens in StringBuffer Objekt löschen Java Basics - Anfänger-Themen 6
A String wird nur einmal an den StringBuffer angehängt Java Basics - Anfänger-Themen 10
F StringBuffer und String kompatibel ?? Java Basics - Anfänger-Themen 5
M StringBuffer - Methoden Java Basics - Anfänger-Themen 6
H String/StringBuffer nach zeilen aufteilen Java Basics - Anfänger-Themen 2
M Frage zum StringBuffer Java Basics - Anfänger-Themen 7
A Unterschied zwischen String & Stringbuffer! Java Basics - Anfänger-Themen 14
A Zeichen selektiv in einen neuen StringBuffer speichern Java Basics - Anfänger-Themen 2
S StringBuffer(Buchstabe) -> Double konvertieren Java Basics - Anfänger-Themen 6
K StringBuffer Java Basics - Anfänger-Themen 5
S StringBuffer in Datei - Problem mit neuer Zeile Java Basics - Anfänger-Themen 2
Z Was ist ein StringBuffer und wie benutz ich das Ding? Java Basics - Anfänger-Themen 3
L Streamklassen, Filewriter und StringBuffer Java Basics - Anfänger-Themen 2
D String/StringBuffer mit Zeichen einer Sorte füllen Java Basics - Anfänger-Themen 14
B StringBuffer Problem Java Basics - Anfänger-Themen 2
N String oder StringBuffer/StringBuilder Java Basics - Anfänger-Themen 6
D string/stringbuffer Java Basics - Anfänger-Themen 6
G String vs StringBuffer Java Basics - Anfänger-Themen 11
J StringBuffer-Objekt soll auf Char-Array zugreifen. Java Basics - Anfänger-Themen 4
J StringBuffer Java Basics - Anfänger-Themen 4
T Unicode StringBuffer -> String = unleserlich Java Basics - Anfänger-Themen 7
K Wie kann ich daraus einen StringBuffer machen ? Java Basics - Anfänger-Themen 4
R OutputStream direkt in StringBuffer schreiben lassen Java Basics - Anfänger-Themen 2
L String to StringBuffer Java Basics - Anfänger-Themen 3
B StringBuffer Java Basics - Anfänger-Themen 8
B Stringbuffer Java Basics - Anfänger-Themen 4
S PrintWriter mit StringBuffer? Java Basics - Anfänger-Themen 3
G StringBuffer Array null setzen Java Basics - Anfänger-Themen 2
J String in StringBuffer ersetzen Java Basics - Anfänger-Themen 7
S StringBuffer.toString() Java Basics - Anfänger-Themen 3
K Wie lese ich einen StringBuffer ein? Java Basics - Anfänger-Themen 4
R App soll selbstständig reagieren, anstatt via Models Java Basics - Anfänger-Themen 0
T jOptionPane zum schließen von Fenster, wie "Ja" und "Nein" anstatt Yes und No Java Basics - Anfänger-Themen 2
I Output BigDecimal anstatt double / Problem beim Rechnen Java Basics - Anfänger-Themen 16
I Format Problem mit Wert - bekomme 0,10 anstatt 10,00 Java Basics - Anfänger-Themen 6
P Hashmap anstatt LinkedList? Java Basics - Anfänger-Themen 6
T GUI anstatt Bild schwarzes Rechteck gespeichert Java Basics - Anfänger-Themen 0
U buttonarray[this] anstatt buttonarray[index] ? Java Basics - Anfänger-Themen 12
M Anstatt 1 int Rückgabewert, mehrere Rückgaben mit Arraylist Java Basics - Anfänger-Themen 8
J Array anstatt Begriffe als Indizes Java Basics - Anfänger-Themen 14
I Erste Schritte while anstatt for, if und break Java Basics - Anfänger-Themen 10
K Was benutzen anstatt this? Java Basics - Anfänger-Themen 9
K Polymorphie Objektreferenz als Superklasse anstatt des Objekttypes Java Basics - Anfänger-Themen 12
B List list - anstatt ArrayList list = new ArrayList Java Basics - Anfänger-Themen 10
D JTextField anstatt Jbuttons Java Basics - Anfänger-Themen 9
A POI Einlesen Excel Workbook aus BLOB oder von URL anstatt aus Filesystem ? Java Basics - Anfänger-Themen 3
P (Arbeitstag-) Calendar - 9 anstatt 24 Stunden Java Basics - Anfänger-Themen 12
dl85hej Zeitsitschleife anstatt Timer Java Basics - Anfänger-Themen 5
B String.equals(Object) anstatt "=" Java Basics - Anfänger-Themen 3
Horst79 Temp Datei cachen anstatt physikalische Datei im root Verz? Java Basics - Anfänger-Themen 8
G start-oder paint-Methode anstatt Event-Handling-Methode? Java Basics - Anfänger-Themen 3
C Servlets: doPost() etc. anstatt service() Java Basics - Anfänger-Themen 4
C Anstatt Spalte, Zeile mit Comparator sortieren . Java Basics - Anfänger-Themen 5
D contains bei JTextArea anstatt bei JTextField Java Basics - Anfänger-Themen 8
H private anstatt public Java Basics - Anfänger-Themen 2
C Wie kann ich Grichische Buchstaben ausgeben anstatt latein? Java Basics - Anfänger-Themen 2
M Ausgabe in String anstatt auf Stream Java Basics - Anfänger-Themen 17

Ähnliche Java Themen

Neue Themen


Oben