Se modifica la cadena proporcionada por esta clase StringBuffer. Puede utilizar StringBuffer cuando sepa que los datos de los caracteres van a cambiar. Normalmente, utiliza StringBuffers para construir dinámicamente datos de caracteres.
Hay tres clases en Java que son responsables de las operaciones de caracteres.
1.El personaje opera con un solo carácter.
2.String opera con una cadena de caracteres. Clases inmutables.
3.StringBuffer también opera con una cadena de caracteres, pero es una clase variable.
Cadena:
Es un objeto y no un tipo primitivo.
Es un objeto inmutable, una vez creado no se puede modificar su valor.
Cualquier modificación de un objeto String existente implica volver a crear un nuevo objeto y luego guardar el nuevo valor en él.
String es una clase final, es decir, no se puede heredar.
Búfer de cadena:
Es un objeto mutable. Cuando se modifica, el objeto no se restablecerá como String. Solo se puede establecer a través del constructor.
StringBuffer sb = nuevo StringBuffer();
nota: No se puede pagar mediante símbolos de pago.
sb = "¡bienvenido aquí!";//error
Una vez creado el objeto, se asignará espacio de memoria en la memoria y se guardará inicialmente un valor nulo en StringBuffer.
Al pagar el valor, puede utilizar su método de adición.
sb.append("hola");
Lo anterior es un extracto, común en Internet, lo siguiente son mis propias ideas agregadas:
La dirección no se puede cambiar, pero sí la extensión y el contenido. El método append () es agregar cuando se excede la memoria reservada, la memoria se duplica.
Comparación de eficiencia: StringBuffer es mayor que String. Debido a que StringBuffer tiene espacio reservado y sigue agregando, solo opera en un objeto. La cadena no se puede modificar y los objetos solo se pueden crear repetidamente para lograr la modificación. ――Si agrega, reemplaza, modifica, inserta o elimina cadenas con frecuencia, es mejor utilizar StringBuffer. Si debe usar String, puede usar StringBuffer para llamar a toString() y convertirlo en String.
Mi máquina es bastante basura y el resultado después de ejecutarla es:
Tiempo de ejecución de la cadena: 164593
------------------
Tiempo de ejecución de StringBuffer: 31
Además, String tiene un método contiene, pero StringBuffer no. Contiene significa que incluye. Aquí puede recuperar el método contiene.
El resultado de la ejecución es
verdadero