Kas ir labāks StringBuffer vai StringBuilder?
Kas ir labāks StringBuffer vai StringBuilder?

Video: Kas ir labāks StringBuffer vai StringBuilder?

Video: Kas ir labāks StringBuffer vai StringBuilder?
Video: Kas ir labāks kaķis vai suns, atbilde ir acīmredzama 2024, Maijs
Anonim

Stīga ir nemainīga, turpretim StringBuffer un StringBuider ir mainīgas klases. StringBuffer ir pavediens drošs un sinhronizēts, turpretim StringBuilder nav, tāpēc StringBuilder ir ātrāks par StringBuffer . String concat + operators iekšēji izmanto StringBuffer vai StringBuilder klasē.

Attiecīgi, kurš no tiem ir labāks StringBuffer vai StringBuilder?

Rezultātā, StringBuilder ir ātrāks par StringBuffer . StringBuffer ir mainīgs. Tas var mainīties gan garuma, gan satura ziņā. StringBuffers ir pavedieni droši, kas nozīmē, ka tiem ir sinhronizētas metodes piekļuves kontrolei, lai tikai viens pavedienam var piekļūt a StringBuffer objekta sinhronizētais kods vienlaikus.

Tāpat, kāpēc StringBuffer ir lēnāks nekā StringBuilder? Objekts izveidots caur StringBuffer tiek glabāts kaudzē. StringBuffer ir tādas pašas metodes kā StringBuilder , bet katra metode iekš StringBuffer ir sinhronizēts, tas ir StringBuffer ir pavediens drošs. Tādējādi StringBuilder ir ātrāks nekā uz StringBuffer izsaucot vienas un tās pašas katras klases metodes.

Tātad, kāda ir atšķirība starp StringBuffer un StringBuilder?

StringBuilder . StringBuilder ir tāds pats kā StringBuffer , tas ir, tas saglabā objektu kaudzē un to var arī modificēt. Galvenais atšķirība starp uz StringBuffer un StringBuilder vai tas ir StringBuilder nav pavedienam drošs. StringBuilder ir ātrs, jo tas nav pavedienam drošs.

Kad man vajadzētu izmantot StringBuffer?

Ja objekta vērtība var mainīties un tai var piekļūt tikai no viena pavediena, izmantot StringBuilder, jo StringBuilder nav sinhronizēts. Ja objekta vērtība var mainīties un tiks mainīta ar vairākiem pavedieniem, izmantot a StringBuffer jo StringBuffer ir sinhronizēts.

Ieteicams: