From Effective Java 2/e by Joshua Bloch
Strings are immutable
Using the string concatenation operator repeatedly to concatenate n strings requires time quadratic in n.
User StringBuilder instead of String it self
// Inappropriate use of string concatenation - Performs horribly! public String statement() { String result = ""; for (int i = 0; i < numItems(); i++) result += lineForItem(i); // String concatenation return result; } public String statement() { StringBuilder b = new StringBuilder(numItems() * LINE_WIDTH); for (int i = 0; i < numItems(); i++) b.append(lineForItem(i)); return b.toString(); }
Because the first method is quadratic in the number of items and the second is linear, the performance difference is even more dramatic for larger numbers of items.