Go言語での話ですが、他の言語でも似た話があります。 文字列の連結で何気なく+(プラス演算子)を使ってしまうことがありますが、連続する場合は気をつける必要があります。 たとえば以下のコード: func StringBuild_bad() string { str := "" for i := 0; i < 1000; i++ { str += "a" } return str } とした場合、連結するごとに文字列オブジェクトが生成されます。これは、Javaでも同じことです。 次に、bytesパッケージを使ってみます: func StringBuild_good() string { var buffer bytes.Buffer for i := 0; i < 1000; i++ { buffer.WriteString("a") } return buffer.String() } こう