¿Cuál es mejor StringBuffer o StringBuilder?
¿Cuál es mejor StringBuffer o StringBuilder?

Video: ¿Cuál es mejor StringBuffer o StringBuilder?

Video: ¿Cuál es mejor StringBuffer o StringBuilder?
Video: #36 StringBuffer and StringBuilder in Java 2024, Mayo
Anonim

String es inmutable mientras que StringBuffer y StringBuider son clases mutables. StringBuffer es seguro para subprocesos y sincronizado, mientras que StringBuilder no es, por eso StringBuilder es más rápido que StringBuffer . String concat + operador utiliza internamente StringBuffer o StringBuilder clase.

En consecuencia, ¿cuál es mejor StringBuffer o StringBuilder?

Como resultado, StringBuilder es más rápido que StringBuffer . StringBuffer es mutable. Puede cambiar en términos de longitud y contenido. StringBuffers son seguros para subprocesos, lo que significa que tienen métodos sincronizados para controlar el acceso de modo que solo uno el hilo puede acceder a un StringBuffer código sincronizado del objeto a la vez.

Del mismo modo, ¿por qué StringBuffer es más lento que StringBuilder? El objeto creado a través StringBuffer se almacena en el montón. StringBuffer tiene los mismos métodos que el StringBuilder , pero cada método en StringBuffer está sincronizado es decir StringBuffer es seguro para subprocesos. Por lo tanto StringBuilder es más rápido que los StringBuffer al llamar a los mismos métodos de cada clase.

Por lo tanto, ¿cuál es la diferencia entre StringBuffer y StringBuilder?

StringBuilder . StringBuilder es igual que el StringBuffer , es decir, almacena el objeto en el montón y también se puede modificar. El principal diferencia entre los StringBuffer y StringBuilder es eso StringBuilder no es seguro para subprocesos. StringBuilder es rápido ya que no es seguro para subprocesos.

¿Cuándo debería usar StringBuffer?

Si el valor del objeto puede cambiar y solo se podrá acceder a él desde un único hilo, usar un StringBuilder porque StringBuilder no está sincronizado. En caso de que el valor del objeto pueda cambiar y sea modificado por varios subprocesos, usar a StringBuffer porque StringBuffer está sincronizado.

Recomendado: