В Java рассматривается ли неизменность строк в реализации String.format ()? - PullRequest
6 голосов
/ 13 июля 2011

Поскольку строки в Java неизменяемы, я всегда использовал StringBuilder или StringBuffer для объединения строк.Способ String.format () обрабатывает эту проблему так же как StringBuilder или StringBuffer?Другими словами, String.format () управляет памятью так же, как StringBuffer или StringBuilder?

1 Ответ

4 голосов
/ 13 июля 2011

Исходя из исходного кода Oracle JDK, кажется, что реализация создает новый Formatter для каждого вызова String#format, который, в свою очередь, выделяет новый StringBuilder для каждого вызова. Так да. Но, как отмечено в комментарии к вашему вопросу, это очень сильно зависит от реализации, хотя здравый смысл подразумевает, что он выберет наиболее эффективный способ действий.

...