Który jest lepszy StringBuffer czy StringBuilder?
Który jest lepszy StringBuffer czy StringBuilder?

Wideo: Który jest lepszy StringBuffer czy StringBuilder?

Wideo: Który jest lepszy StringBuffer czy StringBuilder?
Wideo: 16,5. Kurs C# dla początkujących - Właściwości (properties) - Getter&Setter 2024, Może
Anonim

Ciąg jest niezmienny, podczas gdy Bufor ciągów i StringBuider są klasami mutowalnymi. Bufor ciągów jest bezpieczny wątkowo i zsynchronizowany, podczas gdy StringBuilder nie jest, dlatego StringBuilder jest szybszy niż Bufor ciągów . Ciąg concat + operator używa wewnętrznie StringBuffer lub StringBuilder klasa.

Odpowiednio, który z nich jest lepszy StringBuffer czy StringBuilder?

W rezultacie, StringBuilder jest szybszy niż Bufor ciągów . Bufor ciągów jest zmienny. Może się zmieniać pod względem długości i treści. Bufory ciągów są bezpieczne wątkowo, co oznacza, że mają zsynchronizowane metody kontroli dostępu, dzięki czemu tylko jeden wątek może uzyskać dostęp do Bufor ciągów synchronizowany kod obiektu na raz.

Podobnie, dlaczego StringBuffer jest wolniejszy niż StringBuilder? Obiekt stworzony przez Bufor ciągów jest przechowywany na stercie. Bufor ciągów ma takie same metody jak StringBuilder , ale każda metoda w Bufor ciągów jest zsynchronizowany, czyli Bufor ciągów jest bezpieczny dla wątków. Zatem StringBuilder jest szybszy niż ten Bufor ciągów podczas wywoływania tych samych metod każdej klasy.

W związku z tym, jaka jest różnica między StringBuffer a StringBuilder?

StringBuilder . StringBuilder jest taki sam jak Bufor ciągów , to znaczy przechowuje obiekt na stercie i można go również modyfikować. Główny różnica pomiędzy ten StringBuffer i StringBuilder czy to StringBuilder nie jest bezpieczny dla wątków. StringBuilder jest szybki, ponieważ nie jest bezpieczny dla wątków.

Kiedy powinienem używać StringBuffer?

Jeśli wartość Object może się zmienić i będzie dostępna tylko z jednego wątku, posługiwać się StringBuilder, ponieważ StringBuilder jest niezsynchronizowany. W przypadku, gdy wartość Object może się zmienić i będzie modyfikowana przez wiele wątków, posługiwać się a Bufor ciągów ponieważ Bufor ciągów jest zsynchronizowany.

Zalecana: