ループの中で+を使用して文字列を連結するとループの度にStringを生成するので回数が増えるほどOutOfMemoryしたり処理が遅くなる可能性が高くなる。
public static void main(String[] args) { String hoge = ""; for (int i=0; i<10; i++) { hoge += "(^q^)"; } System.out.println(hoge); }
以下のようにStringBuilderを使えば問題なし。
public static void main(String[] args) { StringBuilder hoge = new StringBuilder(); for (int i=0; i<10; i++) { hoge.append("(^q^)"); } System.out.println(hoge.toString()); }
C#でも同じだった気がする。
でもJavaScriptでは+=で連結したほうが速い。というかStringBuilder的なものがないっぽい。