
Сравнительная таблица
Основа для сравнения | строка | StringBuffer |
---|---|---|
основной | Длина объекта String фиксирована. | Длина StringBuffer может быть увеличена. |
модификация | Строковый объект является неизменным. | Объект StringBuffer является изменяемым. |
Спектакль | Это медленнее во время конкатенации. | Это быстрее во время объединения. |
объем памяти | Потребляет больше памяти. | Потребляет меньше памяти. |
Место хранения | Струнно-постоянный пул. | Память кучи. |
Определение строки
«Строка» - это класс в Java. Объект класса String имеет фиксированную длину, и наиболее важно помнить, что объект класса String является «неизменяемым». После инициализации объекта String вы не сможете снова изменить этот объект. Объект класса String хранится в пуле констант String.
Давайте сначала поймем, что всякий раз, когда вы создаете какую-либо строку; Вы создаете объект типа строка. Строковые константы также являются строковыми объектами.
System.out.println («Привет, это решение Teckpix»);
В приведенном выше утверждении строка «Hello this is Teckpix Solution» является константой String.
Теперь давайте разберемся с изменчивостью объекта String с помощью примера.
String str = new String ("Teckpix"); str.concat ( "Решение"); system.out.println (str); // вывод Teckpix
В приведенном выше коде я попытался объединить две строки «Teckpix» и «Solution». Как мы знаем, когда создается строка, это означает, что создается объект типа String. Следовательно, строка «Teckpix» создает объект, ссылка на который присваивается строковому объекту «str». Затем я попытался объединить другую строку «Solution» со строкой «Teckpix», используя метод «concat ()» класса String.

Определение StringBuffer
Класс «StringBuffer» является одноранговым классом класса «String». Класс StringBuffer обеспечивает больше функциональности для строк. Объект класса StringBuffer является изменяемым, то есть его объект может быть изменен. Длина объекта StringBuffer может быть увеличена. Вы можете вставить символы или подстроки в середину строкового литерала, который назначен объекту StringBuffer или в его конце. StringBuffer выделяет пространство для 16 дополнительных символов, когда не запрашивается конкретная длина.
Давайте разберемся с изменчивостью объекта StringBuffer с помощью примера:

StringBuffre Sb = new StringBuffer ("Teckpix"); Sb.append ( "Решение"); system.out.println (Sb); // Вывод решения Teckpix
Как известно, объект StringBuffer является изменяемым. Метод append () изменяет объект Sb StringBuffer, которому изначально указывается ссылка на объект «Teckpix» ранее. Метод append () добавляет новый строковый литерал «Solution» к концу строкового литерала «Teckpix». Теперь, когда я печатаю объект Sb, он печатает измененный строковый объект «Teckpix Solutions».
Ключевая разница между String и StringBuffer
- Длина объекта String фиксирована, но при необходимости можно увеличить длину объекта StringBuffer.
- Строковый объект является неизменным, т. Е. Его объект не может быть переназначен, тогда как объект StringBuffer является изменяемым.
- Объект String работает медленнее, тогда как объект StringBuffer работает быстрее.
- Объект String занимает больше памяти, тогда как объекты StringBuffer занимают меньше памяти.
- Строковые объекты хранятся в постоянном пуле, тогда как объекты StringBuffer хранятся в динамической памяти.
Заключение:
Объекты StringBuffer предоставляют больше функциональности строкам по сравнению с классом String. Следовательно, предпочтительнее работать с StringBuffer вместо класса String.