English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Строковые буферы и StringBuilder - это изменяемые классы, которые можно использовать для выполнения операций над объектами строк, таких как обратная строка, сжатие строки и т.д. Мы можем изменять строку, не создавая нового объекта строки. Строковые буферы являются безопасными для многопоточности, в то время как генераторы строк не являются безопасными для многопоточности. Поэтому они быстрее, чем буферы строк. Кроме того, оператор concat + использует класс StringBuffer или StringBuilder в内部的. Вот различия.
Номер | Ключ | Строковой буфер | Строковый генератор |
---|---|---|---|
1 | Основной | StringBuffer был введен в первых версиях Java | Он был введен в Java 5 |
2 | Синхронизация | Он является синхронизированным | Асинхронный |
3 | Производительность | Он является безопасным для многопоточности. Поэтому, несколько потоков не могут одновременно доступ к нему, что делает его медленным. | Он не является безопасным для многопоточности, поэтому быстрее, чем буфер строк |
4 | Изменяемость | Он является изменяемым. Мы можем изменить строку, не создавая объект | Он также является изменяемым |
5 | Хранение | Стек | Стек |
public class StringBuilderExample{ public static void main(String[] args){ StringBuilder builder = new StringBuilder("Hi"); builder.append("Java 8"); System.out.println("StringBuilderExample" + builder); {} {}
public class StringBufferExample{ public static void main(String[] args){ StringBuffer buffer = new StringBuffer("Hi"); buffer.append("Java 8"); System.out.println("StringBufferExample" + buffer); {} {}