Skip to content

Mittwoch, 2026-02-25_Programmiertechnik_UDEMY

1) Warum gibt es StringBuilder?

Wichtiges Grundprinzip:

String ist immutable (unveränderlich)
StringBuilder ist mutable (veränderlich)

Das bedeutet:

String s = "Hello";
s.concat(" World");

➡️ erzeugt ein neues Objekt
➡️ das alte bleibt unverändert
➡️ wenn nicht zugewiesen → Ergebnis geht verloren


2) String vs StringBuilder – Unterschied

String

String text = "Hello";
text.concat(" World");
System.out.println(text);

Ausgabe:

Hello

Warum?

  • concat() erstellt neues String-Objekt
  • Ergebnis wurde nicht gespeichert

Richtig wäre:

text = text.concat(" World");

StringBuilder

StringBuilder builder = new StringBuilder("Hello");
builder.append(" World");
System.out.println(builder);

Ausgabe:

Hello World

Warum?

  • append() verändert dasselbe Objekt
  • kein neues Objekt nötig

3) Konstruktoren von StringBuilder

Vier wichtige Varianten:

new StringBuilder()
new StringBuilder("Text")
new StringBuilder(32)
new StringBuilder(CharSequence)

Beispiel: Kapazität

StringBuilder b1 = new StringBuilder();
StringBuilder b2 = new StringBuilder(32);

Standard-Kapazität:

16 Zeichen

Mit Zahl:

Kapazität = angegebene Größe


4) capacity() vs length()

StringBuilder b = new StringBuilder();
System.out.println(b.length());    // 0
System.out.println(b.capacity());  // 16
  • length() = tatsächliche Zeichenanzahl
  • capacity() = Speicherreserve

Wenn capacity überschritten wird: → Speicher wird neu reserviert → Daten werden kopiert

Deshalb:

Bei viel Text → gleich große Kapazität wählen


5) Wichtige Methoden


append()

builder.append(" Text");

Fügt Text an.

Sehr wichtig für Prüfung: → Gibt das gleiche Objekt zurück
→ Method Chaining möglich


deleteCharAt()

builder.deleteCharAt(5);

Entfernt Zeichen an Position.


insert()

builder.insert(5, "X");

Fügt Text an bestimmter Position ein.


replace()

Unterschied zu String.replace:

builder.replace(3, 6, "ABC");
  • Start inklusiv
  • Ende exklusiv

reverse()

builder.reverse();

Dreht Text um.


setLength()

builder.setLength(5);

Schneidet Text ab (truncation).


6) Method Chaining

Weil append() das gleiche Objekt zurückgibt:

builder.append("A")
       .append("B")
       .append("C");

Sehr effizient.


7) Performance-Unterschied (wichtig!)

Viele String-Verkettungen:

String s = "";
for(int i = 0; i < 1000; i++){
    s += "A";
}

Problem: - jedes Mal neues Objekt - ineffizient

Besser:

StringBuilder sb = new StringBuilder();
for(int i = 0; i < 1000; i++){
    sb.append("A");
}

8) Wann benutzt man was?

String verwenden wenn:

  • Text konstant ist
  • wenig Änderungen
  • Literale

StringBuilder verwenden wenn:

  • viel Text zusammengesetzt wird
  • Schleifen
  • Performance wichtig
  • dynamische Manipulation

9) Prüfungsrelevante Punkte

  • String ist immutable
  • StringBuilder ist mutable
  • append() verändert Objekt
  • concat() erzeugt neues Objekt
  • capacity() ≠ length()
  • Method Chaining möglich
  • besser für viele Verkettungen

10) Mini-Merkblock

String:

sicher, einfach, unveränderlich

StringBuilder:

schnell, flexibel, veränderlich