A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yangkaiwei 中级黑马   /  2016-5-4 01:02  /  5517 人查看  /  76 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

String 和StringBuffer的区别?
JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据,请问两个区别和联系?
{:2_31:}

76 个回复

倒序浏览
1、执行速度方面的比较: StringBuffer  >  String
2、String是“字符创常量”,也就是不可改变的对象。StringBuffer就不一样了,它是字符串变量,是可改变的对象,每当我们用它对字符串做操作时,实际上是在一个对象上操作的,这样就不会像String一样创建一些而外的对象进行操作了,当然速度就快了。
3、如果要操作少量的数据用 = String ; 多线程操作字符串缓冲区 下操作大量数据 = StringBuffer

点评

涨姿势了,我开始只知道StringBuffer的字符数据要改变操作要比String类表示内容不可改变的字符串要快,如果要操作少量的数据用 = String ; 多线程操作字...  发表于 2016-5-5 01:06
回复 使用道具 举报 1 0
String内容不可变,StringBuffer内容可变。StringBuffer最终也是一个字符串。
回复 使用道具 举报
我不是很清楚
回复 使用道具 举报
字符串常量和字符串变量
回复 使用道具 举报
一个是可变的一个不可变
回复 使用道具 举报
不可变字符序列和可变字符序列
回复 使用道具 举报
不可变字符序列和可变字符序列
回复 使用道具 举报
StringBuffer是一个字符串缓冲区
回复 使用道具 举报
1、String字符串一旦被初始化是不能更改的,StringBuffer是可以对字符串进行更改的;
回复 使用道具 举报
1、String字符串一旦被初始化是不能更改的,StringBuffer是可以对字符串进行更改的;
2、StringBuffer是一个长度可变的容器,它可以直接操作多个数据类型
3、StringBuffer可以通过toString方法转换成字符串;
4、String类和StringBuffer类有很多方法是相同的

点评

恩是的  发表于 2016-5-5 01:03
回复 使用道具 举报
联系:它们都可以储存和操作字符串,可以相互转换
回复 使用道具 举报
赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞
回复 使用道具 举报
区别:
String是一个不可变的字符序列,StringBuffer是一个可变的字符序列
联系:
A:String -- StringBuffer
        * a:通过构造方法
        * b:通过append()方法
* B:StringBuffer -- String
        * a:通过构造方法
        * b:通过toString()方法
        * c:通过subString(0,length);

点评

String实现了equals方法,new String(“abc”).equals(new String(“abc”)的结果为true,而StringBuffer没有实现equals方法,所以,new StringBuffer(“abc”).equals(new StringBuff...  发表于 2016-5-5 01:02
回复 使用道具 举报
的顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶
回复 使用道具 举报
别:
String是一个不可变的字符序列,StringBuffer是一个可变的字符序列
联系:
A:String -- StringBuffer
* a:通过构造方法
* b:通过append()方法
* B:StringBuffer -- String
* a:通过构造方法
* b:通过toString()方法
* c:通过subString(0,length);

点评

好像String实现了equals方法,new String(“abc”).equals(new String(“abc”)的结果为true,而StringBuffer没有实现equals方法,所以,new StringBuffer(“abc”).equals(new Stri...  发表于 2016-5-5 01:01
回复 使用道具 举报
1、String字符串一旦被初始化是不能更改的,StringBuffer是可以对字符串进行更改的;
2、StringBuffer是一个长度可变的容器,它可以直接操作多个数据类型
3、StringBuffer可以通过toString方法转换成字符串;
4、String类和StringBuffer类有很多方法是相同的
回复 使用道具 举报
一生只为黑马币!
回复 使用道具 举报
涨姿势~
回复 使用道具 举报
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

点评

对于String应该是这样的.  发表于 2016-5-5 00:57
对于String应该是这样的  发表于 2016-5-5 00:55
回复 使用道具 举报 1 0
1234下一页
您需要登录后才可以回帖 登录 | 加入黑马