String 、StringBuild与StringBuffer的区别
String为字符串常量,而StringBuilder和StringBuffer均为字符串变量,即String对象一旦创建之后该对象是不可更改的,但后两者的对象是变量,是可以更改的。
- String类是不可变类,任何对String的改变都会引发新的String对象的生成;
- StringBuffer是可变类,任何对它所指代的字符串的改变都不会产生新的对象,线程安全的。
- StringBuilder是可变类,线性不安全的,不支持并发操作,不适合多线程中使用,但其在单线程中的性能比StringBuffer高。
总得来说:
1.三者的运行速度,或者说是执行速度,在这方面运行速度快慢为:StringBuilder > StringBuffer > String。
2.String:适用于少量的字符串操作的情况;
StringBuilder:适用于单线程下在字符缓冲区进行大量操作的情况;
StringBuffer:适用多线程下在字符缓冲区进行大量操作的情况;
如果有哪些写的不好的地方,请大家多多见谅,希望对大家有所帮助。