Duda. Clase String

que tal a todos les traigo una duda sobre la clase String.

la cuestión es la siguiente se supone que no es optimo concatenar cadenas utilizando la clase String ya que esto genera un nuevo objeto en cada concatenación si quiero concatenar por ejemplo:

String variable1 = "Hola ";

variable1+= "Mundo";

lo que nos daría: "Hola Mundo"

se supone que en el proceso se crea otro objeto. pues bien mi duda es respecto a la cantidad de memoria que se utiliza al concatenar.
digamos que creo un ciclo de esta manera:

String var = "";

for(int i=0;i<4;i++)
{
var+=i;
}

según yo se crearían 5 objetos nuevo que serian:
var = "0"
var = "01"
var = "012"
var = "01230"
var = "01234"

lo que nos daría si contamos los caracteres de cada objeto que son 1+2+3+4+5 = 15x16 = 240 bytes esto supongamos que el recolector de basura aun no elimina los objetos creados.

bueno la duda es si estoy bien en mis cálculos y si es correcto lo que explique, ya que necesito explicar para una tarea por que es mala idea concatenar utilizando la clase String.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de beto.bateria

Consiguete libros de

Consiguete libros de certificacion SCJP, lo deben de explicar con detalle, o revisa este sitio:

http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=JavaSCJP5

Tambien podrias buscar en:

http://docs.oracle.com/javase/specs/

Imagen de genitalico

gracias por la respuesta.. le

gracias por la respuesta.. le daré una leída a los links que me pasaste

Imagen de benek

No son 5, son más. Para cada

No son 5, son más. Para cada iteración se crea el objeto de la cadena que se va a concatenar (aunque jamás tenga referencia) y el objeto para la resultante, así que cada concatenación implica 2 nuevos objetos String (a menos de que en algún caso exista una cadena idéntica en el "string constant pool", pero ese ya es otro tema).