Parte N°6 Java SE - La clase StringBuffer y uso de memoria.
La clase StringBuffer
Las variables u objetos de la clase String hasta ahora vistos, solamente se han podido crear y leer, pero no se pueden modificar.La siguiente función/método, a la cual se le pasa como parámetro u argumento, un *array (arreglo, vector) de cadenas de caracteres (String).
*Los array (arreglo, vector) se estudiarán en las siguientes publicaciones.
public class stringBuffer1 {
public static void main(String [] argv){
String[]arreglo_palabras ={"hola","java","chao"};
stringBuffer1 strf=new stringBuffer1();
System.out.println(strf.getMensaje(arreglo_palabras));
}
public String getMensaje(String[] recibe_arreglo_palabras){
String mensaje="";
for(int i=0; i<recibe_arreglo_palabras.length; i++){
mensaje+=" "+recibe_arreglo_palabras[i];
}
return mensaje;
}
}
En el código se ha utilizado la creación de un objeto de clase:
stringBuffer1 strf=new stringBuffer1();, y una función/método llamada length, esta permite determinar el largo (tipo de dao entero) de un arreglo, variable u objeto, además de la creación de un método getMensaje.
Para optmizar el uso de los recursos disponibles y evitar un trabajo extra al recolector de basura, podemos utilizar el objeto la clase StringBuffer que nos permite crear objetos dinámicos, que pueden modificarse.
Codigo de ejemplo:
public class stringBuffer2 {
StringBuffer mensaje;
public static void main(String [] argv){
String[]arreglo_palabras ={"hola","java","chao"};
stringBuffer2 strf=new stringBuffer2();
System.out.println(strf.getMensaje2(arreglo_palabras));
}
public String getMensaje2(String[] palabras2){
mensaje=new StringBuffer();
for(int i=0; i<palabras2.length; i++){
mensaje.append(" ");
mensaje.append(palabras2[i]);
}
return mensaje.toString();
}
}
La función append tiene la tarea de incrementar la memoria reservada para el objeto u variable mensaje con una palabra más sin crear una nueva porción de memoria, cada vez que se ejecuta el bucle de repetición, en este caso FOR. La función/método toString(), que veremos más adelante, convierte un objeto en una cadena de caracteres.
Código que incluye los dos ejemplo de códigos anteriores, en una clase:
public class stringBuffer1 {
StringBuffer mensaje;
public static void main(String [] argv){
String[]arreglo_palabras ={"hola","java","chao"};
stringBuffer1 strf=new stringBuffer1();
System.out.println(strf.getMensaje(arreglo_palabras));
System.out.println(strf.getMensaje2(arreglo_palabras));
}
public String getMensaje(String[] recibe_arreglo_palabras){
String mensaje1="";
for(int i=0; i<recibe_arreglo_palabras.length; i++){
mensaje1+=" "+recibe_arreglo_palabras[i];
}
return mensaje1;
}
public String getMensaje2(String[] palabras2){
mensaje=new StringBuffer();
for(int i=0; i<palabras2.length; i++){
mensaje.append(" ");
mensaje.append(palabras2[i]);
}
return mensaje.toString();
}
}
Comentarios
Publicar un comentario