Quin és millor StringBuffer o StringBuilder?
Quin és millor StringBuffer o StringBuilder?

Vídeo: Quin és millor StringBuffer o StringBuilder?

Vídeo: Quin és millor StringBuffer o StringBuilder?
Vídeo: Vivaldi Four Seasons: Winter (L'Inverno), original version. Freivogel & Voices of Music RV 297 4K 2024, De novembre
Anonim

La cadena és immutable mentre que StringBuffer i StringBuider són classes mutables. StringBuffer és segur i sincronitzat mentre que StringBuilder no ho és, per això StringBuilder és més ràpid que StringBuffer . La cadena concat + l'operador utilitza internament StringBuffer o StringBuilder classe.

En conseqüència, quin és millor StringBuffer o StringBuilder?

Com a resultat, StringBuilder és més ràpid que StringBuffer . StringBuffer és mutable. Pot canviar en termes de durada i contingut. StringBuffers són segurs per a fils, és a dir, tenen mètodes sincronitzats per controlar l'accés de manera que només un el fil pot accedir a StringBuffer codi sincronitzat de l'objecte alhora.

De la mateixa manera, per què StringBuffer és més lent que StringBuilder? L'objecte creat mitjançant StringBuffer s'emmagatzema al munt. StringBuffer té els mateixos mètodes que el StringBuilder , però cada mètode en StringBuffer està sincronitzat és a dir StringBuffer és segur per a fils. Així StringBuilder és més ràpid que el StringBuffer en cridar els mateixos mètodes de cada classe.

Per això, quina diferència hi ha entre StringBuffer i StringBuilder?

StringBuilder . StringBuilder és el mateix que el StringBuffer , és a dir, emmagatzema l'objecte en un munt i també es pot modificar. El principal diferència entre el StringBuffer i StringBuilder és alló StringBuilder no és segur per a fils. StringBuilder és ràpid ja que no és segur per a fils.

Quan he d'utilitzar StringBuffer?

Si el valor de l'objecte pot canviar i només s'hi podrà accedir des d'un sol fil, utilitzar un StringBuilder perquè StringBuilder no està sincronitzat. En cas que el valor de l'objecte pugui canviar i serà modificat per diversos fils, utilitzar a StringBuffer perquè StringBuffer està sincronitzat.

Recomanat: