Diferencia entre StringBuilder y StringBuffer en Java
-
el
StringBuffer
en Java -
el
StringBuilder
en Java -
Diferencias entre
StringBuilder
yStringBuffer
en Java
Este tutorial discutirá las diferencias entre las clases StringBuilder
y StringBuffer
de Java. ¡Entonces empecemos!
el StringBuffer
en Java
La clase StringBuffer
nos brinda un medio por el cual podemos usar datos de cadenas mutables en Java. Estas cadenas pueden ser utilizadas de manera despreocupada por numerosos subprocesos al mismo tiempo sin riesgo.
Sintaxis:
StringBuffer b = new StringBuffer("Shanii");
Ejemplo:
public class BufferexamplebyZeeshan {
public static void main(String[] args) {
StringBuffer b = new StringBuffer(" Hi! ");
b.append(" Muhammad Zeeshan Here! ");
b.append(" Let's Code ");
System.out.println(b);
}
}
Producción :
Hi! Muhammad Zeeshan Here! Let's Code
el StringBuilder
en Java
StringBuilder
también nos da acceso a cadenas mutables, aunque esta implementación no tiene seguridad de subprocesos. Numerosos subprocesos no pueden utilizarlo al mismo tiempo.
Debido a que esta clase no aplica esta funcionalidad adicional, es mucho más rápida que StringBuffer
.
Sintaxis:
StringBuilder s1 = new StringBuilder("Shani");
Ejemplo:
public class BuilderexamplebyZeeshan {
public static void main(String[] args) {
StringBuilder s = new StringBuilder(" Hey!");
s.append("I am a Programmer");
System.out.println(s);
}
}
Producción :
Hey!I am a Programmer
Diferencias entre StringBuilder
y StringBuffer
en Java
Veamos las diferencias entre StringBuilder
y StringBuffer
por las siguientes declaraciones:
No. | StringBuilder |
StringBuffer |
---|---|---|
1 | La función StringBuilder no está sincronizada, lo que significa que no es segura para subprocesos. Esto indica que dos hilos diferentes pueden llamar simultáneamente a los métodos de la clase StringBuilder . |
El objeto StringBuffer está sincronizado, lo que significa que es seguro para subprocesos. Significa que los métodos de StringBuffer no pueden ser llamados simultáneamente por dos hilos diferentes. |
2 | Se genera en la memoria heap de la computadora. |
También se genera en la memoria heap . |
3 | Nos ofrece cadenas que son Mutables . |
Podemos cambiar la cadena sin construir un objeto. |
4 | Puede almacenar un valor predeterminado de 16 caracteres. | Al igual que StringBuilder , puede almacenar un valor predeterminado de 16 caracteres. |
5 | El más rápido de todos, ya que admite la mutabilidad y evita que muchos subprocesos funcionen simultáneamente. | Es más lento que la clase StringBuilder ya que permite que varios hilos realicen acciones simultáneamente. |
6 | La concatenación se realiza mediante la función append() . |
Su concatenación también se realiza mediante la función append() . |
Ejemplo usando StringBuilder
y StringBuffer
StringBuilder
es más rápido que StringBuffer
ya que no está sincronizado. Echemos un vistazo a un ejemplo básico para comparar StringBuilder
y StringBuffer
:
public class Main {
public static void main(String[] args) {
int RandomNumber = 5677839;
long time;
StringBuffer s = new StringBuffer();
time = System.currentTimeMillis();
for (int i = RandomNumber; i-- > 0;) {
s.append("");
}
System.out.println(System.currentTimeMillis() - time);
StringBuilder b = new StringBuilder();
time = System.currentTimeMillis();
for (int i = RandomNumber; i > 0; i--) {
b.append("");
}
System.out.println(System.currentTimeMillis() - time);
}
}
Producción :
161
17
El ejemplo anterior proporciona la comparación numérica de 161
milisegundos para StringBuffer
y 17
milisegundos para StringBuilder
, lo que hace bastante evidente que StringBuilder
es la opción más eficiente.
I have been working as a Flutter app developer for a year now. Firebase and SQLite have been crucial in the development of my android apps. I have experience with C#, Windows Form Based C#, C, Java, PHP on WampServer, and HTML/CSS on MYSQL, and I have authored articles on their theory and issue solving. I'm a senior in an undergraduate program for a bachelor's degree in Information Technology.
LinkedIn