String - неизменяемый (immutable) класс. Любая операция, изменяющая String, фактически создает новый объект String. Подходит для строк, которые не будут часто меняться.
StringBuilder и StringBuffer - изменяемые (mutable) классы. Позволяют эффективно модифицировать строки без создания новых объектов на каждую операцию изменения.
Ключевые отличия:
Признак | String | StringBuilder | StringBuffer |
---|---|---|---|
Изменяемость | Неизменяемый | Изменяемый | Изменяемый |
Потокобезопасность | Потокобезопасен (из-за неизменяемости) | Не потокобезопасен | Потокобезопасен (методы синхронизированы) |
Производительность | Медленнее для частых изменений | Быстрее для частых изменений (в однопоточной среде) | Медленнее StringBuilder из-за синхронизации |
Пример:
java
String - неизменяемый (immutable) класс. Любая операция, изменяющая String, фактически создает новый объект String. Подходит для строк, которые не будут часто меняться.
StringBuilder и StringBuffer - изменяемые (mutable) классы. Позволяют эффективно модифицировать строки без создания новых объектов на каждую операцию изменения.
Ключевые отличия:
Признак | String | StringBuilder | StringBuffer |
---|---|---|---|
Изменяемость | Неизменяемый | Изменяемый | Изменяемый |
Потокобезопасность | Потокобезопасен (из-за неизменяемости) | Не потокобезопасен | Потокобезопасен (методы синхронизированы) |
Производительность | Медленнее для частых изменений | Быстрее для частых изменений (в однопоточной среде) | Медленнее StringBuilder из-за синхронизации |
Пример:
java
Register or sign in to get access to full answers for all questions from the question bank.