Kleine Verständnisfrage zu Stringbuffer

Status
Nicht offen für weitere Antworten.

Troilus

Mitglied
Huhu,
ich hätte eine kleine Verständnisfrage zum Einsatz von Stringbuffern:

Ich habe bis jetzt immer folgende Syntax bei Ausgaben auf einem Out Stream genutzt:

Code:
...
out.println("<rect x=\""+x+"\" y=\""+y+"\" width=\""+width+"\" height=\""+height+"\" fill=\"none\" stroke=\"black\" />");
...


Implizit wird ja hier durch das + der Stringbuffer.append(String).append(x).append(String).append(y).... aufgerufen.

Bringt es Vorteile in der Perfomance bzw. ist es sauberer Code wenn ich diese Implementierung nutze?:


Code:
StringBuffer tempStringB = new StringBuffer();
        
tempStringB.append("<rect x=\"");
tempStringB.append(x);
tempStringB.append("\" y=\"");
tempStringB.append(y);
tempStringB.append("width=\"");
tempStringB.append(width);
tempStringB.append("\" height=\"");
tempStringB.append(height);
tempStringB.append("\" fill=\"none\" stroke=\"black\" />");
        
out.println(tempStringB.toString());

Oder ist die "Qualität" (ka wie ich es sonst nennen könnte) des Quellcodes gleich?

Gruß
 
Y

YoFish

Gast
Hi Frog,

Performancemäßig ist es ein und dasselbe, wie du
ja auch selbst schon richtig erkannt hast.
Der Compiler setzt beide Varianten in Byte-Code um,
dieser ist nachher in beiden Fällen identisch.

Ich finde die erste Variante vom Programmierstil
besser, weil man alles in einer Zeile hat,
das ist aber Ansichtssache, was man schöner
oder übersichtlicher findet.

Gruß
YF
 

thE_29

Top Contributor
Also, das ist Schwachsinn, das er einen StringBuffer.append macht...


Bsp
OriginalSource::
Code:
public class Outputtest
{
    public Outputtest()
    {
        int x = 3;
        double c = 29.999;
        float b = 4;
        System.out.println("bla" + x + "blubb" + "xx" + c + "fut" + b);
    }

    public static void main(String args[])
    {
        new Outputtest();
    }
}



Decompiled:::
Code:
import java.io.PrintStream;

public class Outputtest
{

    public Outputtest()
    {
        byte byte0 = 3;
        double d = 29.998999999999999D;
        float f = 4F;
        System.out.println("bla" + byte0 + "blubb" + "xx" + d + "fut" + f);
    }

    public static void main(String args[])
    {
        new Outputtest();
    }
}


Das wird nicht mit einem append gemacht, sondern immer ein neues String Objekt angelegt und dazugehängt....

Jedenfalls ist ein String + langsam und sollte nie gemacht werden!! (dort wo es halt nach Performance geht)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
N kleine Kommazahlen erscheinen plötzlich Allgemeine Java-Themen 19
T Kniffel: kleine Straße Allgemeine Java-Themen 6
I GUI für kleine Pop-Ups unter Windows Allgemeine Java-Themen 1
S Wie kann ich eine kleine Stelle in meinem Code mit multiplen Threads abarbeiten..? Allgemeine Java-Themen 20
Soloeco Kleine Optimierungsfrage Allgemeine Java-Themen 6
RalleYTN Classpath Nur ne kleine Frage zur MANIFEST.MF Allgemeine Java-Themen 4
vandread Kleine Generics Aufgabe aus einer Prüfung... wie ist das gemeint? Allgemeine Java-Themen 6
Y Kleine Frage zu String.split Allgemeine Java-Themen 3
W Kleine Frage zu Null-Pinter-Exception Allgemeine Java-Themen 21
D Kleine Frage zum öffnen eines Fensters Allgemeine Java-Themen 10
A Drucken auf kleine Formate Allgemeine Java-Themen 2
O kleine Fragen eines Anfängers Allgemeine Java-Themen 2
musiKk Best Practice für kleine Variationen in gegebenen Modellklassen Allgemeine Java-Themen 11
nrg Kleine Hilfe mit RegEx Allgemeine Java-Themen 2
L Kleine Rekursion Allgemeine Java-Themen 12
B Kleine Frage zu Modellierung (Videothek) Allgemeine Java-Themen 2
J Eine kleine Aufnahme mit Java Allgemeine Java-Themen 3
J Kleine Hilfe zum Framework Click Allgemeine Java-Themen 2
Lulumann6 kleine frage zu KeyEvents Allgemeine Java-Themen 10
G Kleine Frage zu Vectoren Allgemeine Java-Themen 2
D kleine SQL-Hilfe benötigt: not a single-group group function Allgemeine Java-Themen 4
T Designfrage: Viele, kleine Objekte Allgemeine Java-Themen 13
M Schnell kleine Hilfe gesucht! Allgemeine Java-Themen 3
T kleine mp3 Lib Allgemeine Java-Themen 17
K Mit Java kleine Freeware Programme erstellen. Geht das? Allgemeine Java-Themen 16
L kleine frage zum rechner Allgemeine Java-Themen 7
V kleine Threadfrage Allgemeine Java-Themen 10
K Kleine Exception Frage ! Allgemeine Java-Themen 3
B Wie heißt dieser kleine Typ links oben? Also dieses JavaVieh Allgemeine Java-Themen 5
M Verständnisfrage java.util.TimerTask Allgemeine Java-Themen 2
C try-catch Block Verständnisfrage Allgemeine Java-Themen 14
RalleYTN Collections Verständnisfrage zu Objektreferenzen in Listen Allgemeine Java-Themen 5
O log4j - Verständnisfrage Allgemeine Java-Themen 1
M Verständnisfrage bei Hausaufgabe Allgemeine Java-Themen 7
L Getter und Setter Verständnisfrage Allgemeine Java-Themen 10
H MVC - Verständnisfrage Allgemeine Java-Themen 12
E Verständnisfrage zu synchronized-Blöcken Allgemeine Java-Themen 3
E Verständnisfrage bezüglich Threads Allgemeine Java-Themen 4
agent47 Plugin System Verständnisfrage Allgemeine Java-Themen 6
T Verständnisfrage bei Nachbarschaftsbetrachtung Allgemeine Java-Themen 8
M Verständnisfrage Exceptions Allgemeine Java-Themen 2
A Generics Verständnisfrage Allgemeine Java-Themen 7
J Verständnisfrage zu Casts auf Interfaces Allgemeine Java-Themen 5
J Verständnisfrage - nested static classes Allgemeine Java-Themen 11
J Verständnisfrage zu exceptions Allgemeine Java-Themen 3
J volatile Verständnisfrage Allgemeine Java-Themen 6
S JAAS - Verständnisfrage Allgemeine Java-Themen 2
G allgemein synchroniszed verständnisfrage Allgemeine Java-Themen 19
V FileWriter und Zahlen (Kein Problem, nur Verständnisfrage) Allgemeine Java-Themen 4
K Verständnisfrage. Allgemeine Java-Themen 9
T Eine Verständnisfrage Allgemeine Java-Themen 15
sliwalker Verständnisfrage ObserverPattern Allgemeine Java-Themen 2
L Doppelte eintraege im Stringbuffer löschen Allgemeine Java-Themen 4
127.0.0.1 StringBuffer leere Zeile löschen Allgemeine Java-Themen 8
K Immutable View auf StringBuffer? Allgemeine Java-Themen 13
S AWT StringBuffer macht nicht, was ich erwarte Allgemeine Java-Themen 2
T String vs StringBuilder vs StringBuffer Allgemeine Java-Themen 8
V Stringbuffer/builder leeren Allgemeine Java-Themen 2
neurox Stringbuffer -> MimeBodyPart Allgemeine Java-Themen 5
P StringBuffer, StringBuilder und StringWriter Allgemeine Java-Themen 4
T Performance String-Operationen und StringBuffer (1.4und 1.5) Allgemeine Java-Themen 18
G Zeilenweise aus einem StringBuffer lesen Allgemeine Java-Themen 4
B Inhalt von StringBuffer löschen Allgemeine Java-Themen 14
D Inputstream aus StringBuffer Allgemeine Java-Themen 3
M Regex und StringBuffer: Problem mit TAB-Codierung Allgemeine Java-Themen 3
A StringBuffer manipulation Klausur Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben