良くやってしまうのですが、Stringの結合を繰り返してしまうのはNGです。
少し面倒かもしれませんが、StringBuilder もしくは StringBuffer を使うべきです。
String同時の結合を繰り返すと、繰り返した分だけ、すぐ不要になるインスタンスを作成してしまうため、ガーベージコレクションに時間を要することになります。
ダメな例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | public class StringTest { public static void main(String[] args) { String str = "abc"; for(int i=0 ; i<100 ; i++) { str += "d"; //NG } System.out.println(str); } } |
この例では、100回繰り返すので、「生存する意味のある期間が非常に短い」無駄なstrインスタンスが繰り返し作成されてしまいます。
修正例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | public class StringTest { public static void main(String[] args) { StringBuilder str = new StringBuilder("abc"); for(int i=0 ; i<100 ; i++) { str.append("d"); //OK } System.out.println(str.toString()); } } |