三种字符串分别为:String 、 StringBuffer 、StringBuilder 。
它们是CharSequence接口的实现类。
String类是不可改变的量,也就是创建后就不能再修改了。
StringBuffer 和 StringBuilder 都是一个可变字符序列,它们与 String一样,在内存中保存的都是一个有序的字符序列(char类型的数组),不同点是StringBuffer 和 StringBuilder 对象的值是可以改变的。
总结几点,在什么情况下使用不同的字符序列:
1.使用String类的场景
在字符串不经常变化的场景中可以使用String类,例如常量的声明 、 少量的变量运算等。
2.使用StringBuffer类的场景
在频繁进行字符串的运算(如拼接、替换、删除等),而且运行在
多线程的环境中,这可以考虑使用StringBuffer,例如XML 解析 、 HTTP参数解析和封装等。
3.使用StringBuilder类的场景
在频繁进行字符串的运算(如拼接 、 替换 、 删除等),并且运行在
单线程的环境中,则可以考虑使用StringBuilder ,例如SQL 语句的拼装 、 JSON封装等。
在性能方面,由于String类的操作都是产生新的String对象,而StringBuilder 和 StsringBuffer 只是一个
字符数组的在扩容而已,所以String类的操作要远忙于StringBuffer 和 StringBuiler 。