English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Разница между буфером строк и генератором строк в Java

Строковые буферы и StringBuilder - это изменяемые классы, которые можно использовать для выполнения операций над объектами строк, таких как обратная строка, сжатие строки и т.д. Мы можем изменять строку, не создавая нового объекта строки. Строковые буферы являются безопасными для многопоточности, в то время как генераторы строк не являются безопасными для многопоточности. Поэтому они быстрее, чем буферы строк. Кроме того, оператор concat + использует класс StringBuffer или StringBuilder в内部的. Вот различия.

НомерКлючСтроковой буферСтроковый генератор
1
Основной

StringBuffer был введен в первых версиях Java

Он был введен в Java 5
2
Синхронизация
Он является синхронизированнымАсинхронный 
3Производительность 

Он является безопасным для многопоточности. Поэтому, несколько потоков не могут одновременно доступ к нему, что делает его медленным.

Он не является безопасным для многопоточности, поэтому быстрее, чем буфер строк 
4Изменяемость

Он является изменяемым. Мы можем изменить строку, не создавая объект

Он также является изменяемым 
5
Хранение 
Стек
Стек

Пример StringBuilder

public class StringBuilderExample{
   public static void main(String[] args){
      StringBuilder builder = new StringBuilder("Hi");
      builder.append("Java 8");
      System.out.println("StringBuilderExample" + builder);
   {}
{}

Пример StringBuffer

public class StringBufferExample{
   public static void main(String[] args){
      StringBuffer buffer = new StringBuffer("Hi");
      buffer.append("Java 8");
      System.out.println("StringBufferExample" + buffer);
   {}
{}
Вам может понравиться