String 和StringBuffer的区别

越详细越好!最好就像教课一样
要有例子`要比喻`让不懂的人一听就明白`
给人讲的话能讲个30分钟~(可以结合baidu其他知道的答案)
总之!要说的头头是道!
都说的太短了...

一、内部实现方式不同

1、String:在进行字符串处理时,会生成新的对象。

2、StringBuffer:在进行字符串处理时,不生成新的对象,在内存使用上要优于串类。

二、使用情况不同

1、String:用在固定的字符串,不经常对字符串进行更改的情况。

2、StringBuffer:经常需要对一个字符串进行修改,例如插入,删除等操作,使用StringBuffer要更加适合一些。


三、优势不同

1、String:String类中没有用来改变已有字符串中的某个字符的方法

2、StringBuffer:StringBuffer的类属于一种辅助类,可预先分配指定长度的内存块建立一个字符串缓冲区。这样使用的StringBuffer类的 附加方法追加字符比字符串使用+操作符添加字符到一个已经存在的字符串后面有效率得多。


参考资料来源:百度百科-StringBuffer

参考资料来源:百度百科-string类

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-02-27
STRING的长度是不可变的,STRINGBUFFER的长度是可变的。如果你对字符串中的内容经常进行操作,特别是内容要修改时,那么使用StringBuffer,如果最后需要String,那么使用StringBuffer的toString()方法
使用 StringBuffer 主要就是在性能上的考虑。 String 是一种非常常用的数据类型,但由于 String 是不可变对象,在进行 String 的相关操作的时候会产生许多临时的 String 对象。而 StringBuffer 在操作上是在一个缓冲中进行的,性能当然优越得多。不过,一般做为简单的字符串传递和其它操作,只不要改变字符串内容的操作,用 String 效率会高一些。本回答被提问者和网友采纳
第2个回答  2007-12-31
java.lang.String类是final类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,我们应该用StringBuffer类
String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串进行修改。当你知道字符数据要改变的时候你就可以使用StringBuffer。典型地,你可以使用StringBuffers来动态构造字符数据
第3个回答  2007-12-30
StringBuffer适合用于经常改变的变量

String具有不变性

总之你记得,如果你那字符串是要经常改变的,就用StringBuffer就对了

你初学java吧?底层的东西就先不跟你说了。免得你晕。
第4个回答  2019-01-23
1.三者在执行速度方面的比较:StringBuilder
>
StringBuffer
>
String
  2.String
<(StringBuffer,StringBuilder)的原因
    String:字符串常量
    StringBuffer:字符创变量
    StringBuilder:字符创变量
    从上面的名字可以看到,String是“字符创常量”,也就是不可改变的对象。对于这句话的理解你可能会产生这样一个疑问
,比如这段代码:
1
String
s
=
"abcd";
2
s
=
s+1;
3
System.out.print(s);//
result
:
abcd1
相似回答