Código fuente de programación multiproceso
Cadena<(StringBuffer, StringBuilder).
String: constante de cadena
StringBuffer: variable de cadena
StringBuilder: variable de cadena
Como puede ver en el nombre anterior, resulta Tenga en cuenta que String es una "constante construida", es decir, un objeto inmutable.
2.StringBuffer/StringBuilder es la línea de montaje para producir este producto. StringBuffer es lento pero tiene alta seguridad (subprocesos), StringBuilder es rápido pero tiene poca seguridad (subprocesos).
3. ?Cadena? Esta clase es final y el valor en la memoria de referencia es inmutable. ¿Es ineficiente hacer referencia a una gran cantidad de datos, StringBuffer? Se utiliza para modificaciones frecuentes y es seguro para subprocesos, mientras que StringBuilder no es seguro para subprocesos. Si solo se usa para declarar variables, use String. Si se usa para operaciones frecuentes entre cadenas, use StringBuffer.
4. Si usa una cadena para operar una pequeña cantidad de cadenas, si usa un solo subproceso para operar una gran cantidad de cadenas, use StringBuilder si usa varios subprocesos para operar una gran cantidad de cadenas. , utilice StringBuffer.
5.StringBuffer, StringBuilder y String también se utilizan para representar cadenas. La clase String es inmutable y cualquier cambio en String dará como resultado la generación de un nuevo objeto String; StringBuffer es una clase mutable y cualquier cambio en la cadena a la que hace referencia no creará un nuevo objeto.
6. La diferencia entre StringBuffer y StringBuilder es la misma. Sus principios y operaciones son básicamente los mismos. La diferencia es que StringBuffered admite operaciones concurrentes, es lineal, seguro y adecuado para subprocesos múltiples. StringBuilder no admite operaciones concurrentes. Esta operación es lineal, insegura y no es adecuada para subprocesos múltiples. La clase StringBuilder recientemente introducida no es segura para subprocesos, pero su rendimiento en un solo subproceso es mayor que en StringBuffer.