Кое е по-добре StringBuffer или StringBuilder?
Кое е по-добре StringBuffer или StringBuilder?

Видео: Кое е по-добре StringBuffer или StringBuilder?

Видео: Кое е по-добре StringBuffer или StringBuilder?
Видео: 32. Kurs Java dla początkujących - StringBuilder - optymalizacja 2024, Декември
Anonim

Низът е неизменим, докато StringBuffer и StringBuider са променливи класове. StringBuffer е поточно безопасен и синхронизиран, докато StringBuilder не е, ето защо StringBuilder е по-бързо от StringBuffer . Низ concat + операторът се използва вътрешно StringBuffer или StringBuilder клас.

Съответно кой е по-добър StringBuffer или StringBuilder?

Като резултат, StringBuilder е по-бързо от StringBuffer . StringBuffer е променлив. Може да се променя по отношение на дължината и съдържанието. StringBuffers са безопасни за нишки, което означава, че имат синхронизирани методи за контрол на достъпа, така че само един нишката има достъп до a StringBuffer синхронизиран код на обекта наведнъж.

По същия начин защо StringBuffer е по-бавен от StringBuilder? Обектът, създаден чрез StringBuffer се съхранява в heap. StringBuffer има същите методи като StringBuilder , но всеки метод в StringBuffer е синхронизиран, т.е StringBuffer е безопасен за конци. Поради това StringBuilder е по-бърз отколкото на StringBuffer при извикване на едни и същи методи на всеки клас.

Следователно, каква е разликата между StringBuffer и StringBuilder?

StringBuilder . StringBuilder е същото като StringBuffer , тоест съхранява обекта в heap и също може да бъде модифициран. Основното разлика между на StringBuffer и StringBuilder е това StringBuilder не е безопасен за нишки. StringBuilder е бърз, тъй като не е безопасен за нишки.

Кога трябва да използвам StringBuffer?

Ако стойността на обекта може да се промени и ще бъде достъпна само от една нишка, използване a StringBuilder, защото StringBuilder е несинхронизиран. В случай, че стойността на обекта може да се промени и ще бъде променена от множество нишки, използване а StringBuffer защото StringBuffer е синхронизиран.

Препоръчано: