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.
- Inicie sesión o regístrese para enviar comentarios
Consiguete libros de
Consiguete libros de certificacion SCJP, lo deben de explicar con detalle, o revisa este sitio:
Tambien podrias buscar en:
gracias por la respuesta.. le
gracias por la respuesta.. le daré una leída a los links que me pasaste
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).