Care este mai bun StringBuffer sau StringBuilder?
Care este mai bun StringBuffer sau StringBuilder?

Video: Care este mai bun StringBuffer sau StringBuilder?

Video: Care este mai bun StringBuffer sau StringBuilder?
Video: Stringbuffer in Java | methods of stringbuffer | difference between string and stringbuffer 2024, Aprilie
Anonim

Șirul este imuabil în timp ce StringBuffer și StringBuider sunt clase mutabile. StringBuffer este thread safe și sincronizat în timp ce StringBuilder nu este, de aceea StringBuilder este mai rapid decât StringBuffer . șir de caractere concat + operator utilizează intern StringBuffer sau StringBuilder clasă.

În mod corespunzător, care este mai bun StringBuffer sau StringBuilder?

Ca urmare, StringBuilder este mai rapid decât StringBuffer . StringBuffer este mutabil. Se poate schimba în ceea ce privește lungimea și conținutul. StringBuffers sunt sigure pentru fire, ceea ce înseamnă că au metode sincronizate pentru a controla accesul, astfel încât numai unu thread poate accesa a StringBuffer codul sincronizat al obiectului la un moment dat.

În mod similar, de ce StringBuffer este mai lent decât StringBuilder? Obiectul creat prin StringBuffer este depozitat în grămada. StringBuffer are aceleași metode ca și StringBuilder , dar fiecare metodă în StringBuffer este sincronizat adică StringBuffer este sigur pentru fire. Prin urmare StringBuilder e mai rapid decât cel StringBuffer la apelarea acelorași metode ale fiecărei clase.

Prin urmare, care este diferența dintre StringBuffer și StringBuilder?

StringBuilder . StringBuilder este la fel ca StringBuffer , adică stochează obiectul în heap și poate fi, de asemenea, modificat. Principalul diferență între cel StringBuffer și StringBuilder este asta StringBuilder nu este sigur pentru fire. StringBuilder este rapid, deoarece nu este sigur pentru fire.

Când ar trebui să folosesc StringBuffer?

Dacă valoarea obiectului se poate modifica și va fi accesată doar dintr-un singur fir, utilizare un StringBuilder deoarece StringBuilder este nesincronizat. În cazul în care valoarea obiectului se poate modifica și va fi modificată de mai multe fire, utilizare A StringBuffer deoarece StringBuffer este sincronizat.

Recomandat: