Sobes.tech
Senior
27

Что такое StringBuilder и чем отличается от String и StringBuffer?

Companies where asked
cdti

Answer from AI

sobes.tech AI

StringBuilder, StringBuffer и String — это классы для работы со строками в Java, но они имеют разные характеристики:

  • String — неизменяемый (immutable) объект. Любая операция, изменяющая строку, создает новый объект. Это удобно и безопасно, но при большом количестве изменений приводит к созданию множества объектов и снижению производительности.

  • StringBuffer — изменяемый класс для работы со строками, поддерживает синхронизацию (thread-safe). Используется в многопоточной среде, где требуется безопасность при одновременном доступе.

  • StringBuilder — тоже изменяемый класс, похожий на StringBuffer, но не синхронизирован. Это делает его быстрее в однопоточных сценариях.

Итого:

  • Используйте String для неизменяемых строк или когда изменений мало.
  • Используйте StringBuilder для эффективного построения строк в однопоточных приложениях.
  • Используйте StringBuffer если нужна потокобезопасность при изменении строк.

Пример использования StringBuilder:

StringBuilder sb = new StringBuilder();
sb.append("Привет");
sb.append(" мир");
String result = sb.toString();

Это более эффективно, чем конкатенация строк через + в циклах.