java字符串类String 和StringBuffer类有何不同?

 我来答
墨西哥的鱼
2015-01-12
知道答主
回答量:22
采纳率:0%
帮助的人:11.7万
展开全部
String:
是对象不是原始类型.
为不可变对象,一旦被创建,就不能修改它的值.
对于已经存在的String对象的修改都是重新创建一个新的对象,然后把新的值保存进去.
String 是final类,即不能被继承.
StringBuffer:
是一个可变对象,当对他进行修改的时候不会像String那样重新建立对象
它只能通过构造函数来建立,
StringBuffer sb = new StringBuffer();
注意:不能通过赋值符号对他进行赋值.
sb = "welcome to here!";//error
对象被建立以后,在内存中就会分配内存空间,并初始保存一个null.向StringBuffer
中赋值的时候可以通过它的append方法.
sb.append("hello");
字符串连接操作中StringBuffer的效率要比String高:
haodemumu168
2015-01-12 · TA获得超过299个赞
知道小有建树答主
回答量:479
采纳率:100%
帮助的人:284万
展开全部
StringBuffer其实是一个可变的String,通俗点说是长度能够自由变动的字符串
el:

String ss = "abc";
这里的ss就是String,但是ss已经定死了,我们不能够对ss进行长度的改变了;
StringBuffer buff = new StringBuffer();
buff.append("abc");
buff.append("efg");
String str = buff.toString();
这里的str = “abcdefg”;我们通过buff对str进行了修改;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
巫难天地难m
2015-01-12 · TA获得超过263个赞
知道小有建树答主
回答量:173
采纳率:0%
帮助的人:137万
展开全部
String是固定长度的,
StringBuffer源码里面的构造函数:
public StringBuffer() {
super(16);
}
这里是初始大小16个字节。但它是可变长度的,超过16个字节时会自动扩展。
StringBuffer域StringBuildder类似。但前者是线程安全的,后者是线程不安全的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式