String StringBuffer StringBuilder的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了String StringBuffer StringBuilder的区别相关的知识,希望对你有一定的参考价值。

String:是被final修饰的类,是不可变类,也就是说我们通常定义的String类型的变量的值是不可改变的
StringBuffer:是线程安全的可变的字符序列
StringBuilder:是非线程安全的可变的字符序列,它和StringBuffer基本上差不多吧,在不涉及多线程使用时用StringBuilder会更快些
总体来说就是:String不可变,StringBuffer和StringBuilder可变,线程同步时用StringBuffer,非同步用StringBuilder
以上是我的个人理解
参考技术A string在每次值变化时时都需要重新申请一次内存地址
stringbuilder和上面相反。

所以用起来。一个二个没什么区别,但如果量多时效率就有很大差别。

用法:
string 你懂的 我就不解释了
StringBuffer 这个好像是JAVA的吧?功能和STRINGBUILER类似?
StringBuilder 一般是用来拼接 string的。效率比string拼接string高的多,你可以看到别人程序如果有超过5行一行的STRING拼接,一般都会用StringBuilder.append(str)

参考资料:纯手工

参考技术B Java:
String每个新的变量都会分配新的空间,拼接字符串的时候不建议使用。
StringBuffer 用于拼接字符串,支持append、insert方法,内存空间会自己扩展,不需要额外分配,效率较高,线程安全。
StringBuilder 和StringBuffer类似,区别是他线程不安全,所以单线程情况下它效率更高。若在多线程环境下,请使用StringBuffer。

以上是关于String StringBuffer StringBuilder的区别的主要内容,如果未能解决你的问题,请参考以下文章

String,StringBuffer与StringBuilder的区别

(转)String,StringBuffer与StringBuilder的区别

重温java中的String,StringBuffer,StringBuilder类

Java常用类--String类(StringBuilder 和 StringBuffer)介绍

StringBuffer和StringBuilder类

StringBuffer的替换功能