83
String str = "Hello";
for (int i = 1; i < 1000; ++i) {
str = str + i;
}
Классы StringBuffer и StringBuilder
Как объяснялось выше, строки String являются неизменяемыми, поэтому
строковые литералы с таким контентом хранятся в пуле строк. Изменение
содержимого одной строки непосредственно может вызвать нежелательные
побочные эффекты и может повлиять на другие строки, использующие ту же
память.
JDK предоставляет два класса для поддержки возможностей по изменению
строк: это классы StringBuffer и StringBuilder (входят в основной пакет java.lang ).
Объекты StringBuffer или StringBuilder так же, как и любые другие обычные
объекты, которые хранятся в куче, а не совместно в общем пуле, и, следовательно,
могут быть изменены , не вызывая нехороших побочных эффектов на другие
объекты .
Класс StringBuilder как класс был введён в JDK 1.5. Это то же самое , как
использование класса StringBuffer, за исключением того, что StringBuilder не
синхронизирован по многопоточных операций. Тем не менее, для программы в виде
одного потока или нити управления, использование класса StringBuilder, без
накладных расходов на синхронизацию, является более эффективным.
•
Достарыңызбен бөлісу: