String, StringBuffer y StringBuilder entre los tres tipos

String, StringBuffer y StringBuilder entre los tres tipos

conceptos

1. tipo String, el objeto está dentro de la java, objetos inmutables, cada vez cuando el cambio String, necesidad de generar un nuevo objeto String, a continuación, un puntero al objeto nuevo, si en un bucle, en constante cambio un objeto, hay que seguir para generar nuevo objeto, si el objeto más, el mecanismo de recolección de basura automática de java comenzará a trabajar, por lo que la eficiencia es muy baja, se recomienda no utilizar cuerdas tipo String objetos cambian constantemente lugares.

2. StringBuffer es un objeto variable, es decir, cada operación es para operar en el objeto en sí mismo, en vez de crear un nuevo objeto, por lo que la eficiencia se mejora en gran medida, en la mayoría de los casos StringBuffer eficiente que una cadena más alto.

3.StringBuilder y StringBuffer como una secuencia de caracteres variable, compatible con StringBuffer proporcionar la API, pero no puede garantizar la sincronización,

En el caso de ser utilizado como un hilo en un uso búfer de cadena, el uso StringBuilder tendrá una mejor eficiencia en el caso de multiproceso de no autónomo, porque no hay síncrona (sincronizado) problema tratamiento StringBuilder.

StringBuffer se ocupará de los problemas de sincronización, StringBuild estará operativo en un multi-hilo, para usar StringBuffer, dejar que los problemas de sincronización de administración de objetos por sí mismos.

Velocidad o rapidez de ejecución

La velocidad de operación en este sentido son:

StringBuilder> StringBuffer> Cadena

Cuerda razones más lentos:

Cadena de una constante de cadena, mientras que StringBuilder y StringBuffer son variables de cadena, es decir, el objeto String Una vez creado el objeto no puede ser cambiado, pero los dos objetos son variables, se puede cambiar

El objeto StringBuilder y StringBuffer es una variable, la variable de operación es hacer cambios directamente en el objeto, sin las operaciones de creación y recuperación, por lo que la velocidad es mucho más rápido que el de cadena.

Seguridad para subprocesos

En thread-safe:

StringBuilder no es seguro para subprocesos, alta eficiencia operativa,

El StringBuffer es thread-safe

Si un objeto StringBuffer cuando el búfer de cadena está utilizando múltiples hilos, StringBuffer de muchas maneras con la palabra clave sincronizada, es posible asegurar que el hilo es seguro, pero el enfoque StringBuilder no es la clave, no se puede garantizar la seguridad de hilo puede haber algo ocurre operación incorrecta. Así que si usted quiere operar un multi-hilo, entonces deberíamos usar StringBuffer, pero en el caso de un único subproceso, se recomienda utilizar el más rápido StringBuilder.

resumen de uso

Cuerda: aplicar una pequeña cantidad de funcionamiento de la cadena

StringBuilder: aplicar para llevar a cabo grandes cantidades de datos en un único subproceso de operación bajo el búfer de caracteres

Si una variable de cadena se define dentro de un método, esto sólo puede tener un hilo acceder a él, no hay inseguridad, y luego usar StringBuilder.

Caso de grandes cantidades de datos adecuados para operaciones multiproceso bajo el búfer de caracteres: StringBuffer

Si desea definir las variables miembro de una clase allí, e instancias de objetos de esta clase va a utilizar lo mejor es usar StringBuffer en un entorno multiproceso

 

Supongo que te gusta

Origin www.cnblogs.com/weigy/p/12669909.html
Recomendado
Clasificación