Если код, следующий за внутренним циклом, выполняет что-то, требующее большого объема памяти, и StringBuilder во внутреннем цикле также велик, то вы можете захотеть, чтобы он был локально ограничен, чтобы освободить ГХ для освобождения память потом. В противном случае я согласен с JBristow, что он должен выходить за пределы цикла и очищаться (и, возможно, trimToSize () 'd) в начале внутреннего цикла.