Foro de elhacker.net

Programación => Java => Mensaje iniciado por: + 1 Oculto(s) en 12 Junio 2016, 23:48 pm



Título: StringBuilder vs String ( JAVA )
Publicado por: + 1 Oculto(s) en 12 Junio 2016, 23:48 pm
por que cuando utilizo StringBuilder el tiempo de ejecucion disminuye respecto al utilizar String

alguna explicacion?


Título: Re: StringBuilder vs String ( JAVA )
Publicado por: AlbertoBSD en 13 Junio 2016, 00:48 am
Dados los Siguientes codigos:

Código
  1. String result = "";
  2. for (String s : hugeArray) {
  3.    result = result + s;
  4. }

y
Código
  1. StringBuilder sb = new StringBuilder();
  2. for (String s : hugeArray) {
  3.    sb.append(s);
  4. }
  5. String result = sb.toString();

con hugeArray con miles de strings.

el StringBuilder ya es un contendedor en si y solo tiene que anexar los strings al buffer interno ya existente y String tiene que generar N veces nuevas  instancias de String  en cada concatenation resultando mas costoso en tiempo de cpu y memoria.

Fuente:

http://stackoverflow.com/questions/1532461/stringbuilder-vs-string-concatenation-in-tostring-in-java

Saludos


Título: Re: StringBuilder vs String ( JAVA )
Publicado por: + 1 Oculto(s) en 13 Junio 2016, 01:32 am
entonces StringBuilder es un contenedor

en que casos usar String y en que casos usar String builder?


Título: Re: StringBuilder vs String ( JAVA )
Publicado por: AlbertoBSD en 13 Junio 2016, 01:57 am
Segun la pagina

https://docs.oracle.com/javase/7/docs/api/java/lang/StringBuilder.html

Citar
A mutable sequence of characters. This class provides an API compatible with StringBuffer, but with no guarantee of synchronization. This class is designed for use as a drop-in replacement for StringBuffer in places where the string buffer was being used by a single thread (as is generally the case).

StringBuilder es un constructor de Cadenas su nombre lo dice y es parecido a StringBuffer

String lo usas cuando ya tienes la cadena construida y va a tener minimas o ninguna modificacion (Almacenar datos finales) y StringBuilder lo usas cuando sabes que vas a realizar varias concatenaciones a una misma cadena y al final lo puedes pasar a String.

Saludos


Título: Re: StringBuilder vs String ( JAVA )
Publicado por: hectornunezrivas en 19 Junio 2016, 03:21 am
Buenas noches amigo.
Los métodos de StringBuilder no son sincronizados, por lo que tiene mejor rendimiento que StringBuffer. En general, la concatenación de String ocurre con variables locales a un método, por lo que es seguro usar StringBuilder en lugar de StringBuffer. En métodos que hacen uso intensivo de la concatenación, la diferente en rendimiento puede ser importante.

StringBuilder se usa de la siguiente manera:

StringBuilder holamundoBuilder = new StringBuilder();
holamundoBuilder.append("Hola, ");
holamundoBuilder.append("mundo");

String holamundo = holamundoBuilder.toString();

Espero y te sea util