# String vs StringBuilder vs StringBuffer



## Titanpharao (24. Okt 2008)

Hey sagt mal was ist schneller?

in sachen IndexOf Substring ... nicht append (+) da ist der String eh total lahm. Aber nach meinem kleinen Test gerade war der normale String bei den Methoden schneller!, oder was sagt ihr?


----------



## maki (24. Okt 2008)

Dein Test bedeutet gar nichts, so wie die meisten sog. Micro-Benchmarks.


----------



## Titanpharao (24. Okt 2008)

Dann sag mir was schneller ist! Ich glaube ja auch das eigentlich StringBuilder/Buffer schneller sein müsten  :meld:


----------



## maki (24. Okt 2008)

>> Ich glaube ja auch das eigentlich StringBuilder/Buffer schneller sein müsten

Wieso? Ist das ein Ratespiel/Quiz?

Warum nicht nachsehen/nachlesen?

Aus StringBuilder.java:

```
public int indexOf(String str) {
     return indexOf(str, 0);
   }

   public int indexOf(String str, int fromIndex) {
     return String.indexOf(value, 0, count,
                           str.toCharArray(), 0, str.length(), fromIndex);
   }
```


----------



## Wildcard (24. Okt 2008)

Titanpharao hat gesagt.:
			
		

> Dann sag mir was schneller ist! Ich glaube ja auch das eigentlich StringBuilder/Buffer schneller sein müsten  :meld:


Hängt von der Art der Verwendung ab. Die einzige Konstante: StringBuilder ist schneller als StringBuffer.


----------



## Landei (24. Okt 2008)

Und

"abra " + "kadabra " + "dreimal " + "schwarzer " + "Kater"

ist schneller als

new StringBuilder().
append("abra ").
append("kadabra ").
append("dreimal ").
append("schwarzer "").
append("Kater").toString();

Aber nur, weil schon der Compiler konstante Strings zusammeaddiert (diese also schon fertig verkettet im class-File stehen)


----------



## Der Müde Joe (24. Okt 2008)

das gabs doch schon ein paar mal:
http://www.java-forum.org/de/viewto...ostorder=asc&highlight=stringbuffer+schneller
http://www.java-forum.org/de/viewto...chneller&sid=d11799eb8c1c4ec5b657576aa914397d


----------



## ARadauer (24. Okt 2008)

hier gehts eh nur um ein paar ms...
wichtig ist, dass man string verkettungen in einer schleife nie mit String macht! das kann sehr auf die performance gehenn, wir sprechen da von ein paar sekunden.
wenn ich an einen 10000 zeichen string 10000 zeichen nacheinander anhänge, habe ich 10000 strings mit 10000 zeichen... wenn dann der gc los läuft.. tja...das braucht seine zeit


----------



## ARadauer (24. Okt 2008)

lol "Sexy String Tangas" google werbung...


----------

