Строки являются неизменяемыми - это означает, что я никогда не должен использовать + = и только StringBuffer? - PullRequest
11 голосов
/ 28 октября 2009

Строки являются неизменяемыми, то есть после создания они не могут быть изменены.

Итак, означает ли это, что если вы добавите вещи с помощью + =, потребуется больше памяти, чем если бы вы создали StringBuffer и добавили к нему текст?

Если вы используете + =, вы бы каждый раз создавали новый «объект», который нужно сохранить в памяти, не так ли?

Ответы [ 11 ]

0 голосов
/ 28 октября 2009

Я думаю, что GC собирает память с оставленной строкой. Таким образом, выполнение + = со строителем строк будет определенно быстрее, если у вас есть много операций по обработке строк. Но это не должно быть проблемой для большинства случаев.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...