String类和StringBuffer类的区别

时间:2017.10.22 发布人:komany

String类和StringBuffer类的区别

已解决问题

谷歌komany用户在2017.10.22提交了关于“大头儿子小头爸爸String类和StringBuffer类的区别”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2024-07-17T03:25:47。希望大家能够帮助她。

详细问题描述及疑问:期待您的答案,你无异于雪中送炭,让我感激涕零 !

希望以下的回答,能够帮助你。

第1个回答

用户名:banrman29e  

Str来自ing与StringBuffer的区别
简单地说,就是一个变问答量和常量的关系。StringBuffer对象的内容可以修改;而String对象一旦**生后就不可以被修改,重新赋值其实是两个对象。
均StringBuffer
的**实现方式和String不同,StringBuffer在进行字符串处理时,不生成新的对象,在内存使用上要优于String类。所以在实际使观达垂再刑陆州水衣用
时,如果经常需要对一个字符串进行修改,例如插急胶外叫只烈统界岩指青入、删除等操作,使用StringBuffer要更加适合一些。
String:在String类中没有用来改变已有字符串中的某个字符的方法,由于不能改变一个j**a字符串中的某个单独字符,所以在JDK文档中称String类的对象是不可改变的。然而,不可既肉更坚盐话县算银批改变的字符串具有一个很大的优点:编译器可以把字符串设为**享的。
StringBuffer:StringBuffer
类属于一种**类,可预先分配指定长度的内存块建立一个字符串缓冲区。这样使用St粮握革呼对刑先尼ringBuffer类的append方法追加字符比
String使用+操作符添加字符到一个已和束的化经存在的字符串后面有效率得多。因为使用+
操作符每一次将字符添加到一个字符串中去时,字符串对象都需要寻找一个新的内存空间来容纳更大的字符串,这无凝是一个非常消耗时间的操作。添加多个字符也
就意味着要一次又一次的对字符串重新分配内存。使用杆团热古团么圆观StringBuffer类就避免了这个问题。
StringBuffer是线程安全的,在多线程程序中也可以很方便的进行使用,但是程序的执行效率相对来说就要稍微慢一些。
StringBuffer的常用方法
StringBuffer类中的方法要偏重于对字符串的变化例沙而杂如追加、插入和删除等,这个也是StringBuffer和String类的主要区别。
1、append方法
publicSt形促酒盐青ringBufferappend(booleanb)
该方法的作用是追加内容到当前Strin路另赵积没刚复天著gBuffer对象的末尾,类似于字符串的连接。调用该方法以后,StringBuffer对象的内容也发生改变,例如:
StringBuffersb=newStringBuffer(“abc”);
sb.append(true);
则对象sb的值将变成”abctrue”。