黑马程序员技术交流社区

标题: string与stringBuffer的区别 [打印本页]

作者: cyc523633157    时间: 2014-8-4 17:25
标题: string与stringBuffer的区别
本帖最后由 cyc523633157 于 2014-8-5 21:29 编辑

string与stringBuffer的区别

作者: alvinbx    时间: 2014-8-4 18:20
String是属于StringBuffer类的,就好像Int和integer的关系。
作者: 柳超    时间: 2014-8-4 18:22
所谓容器,就是一个放置的空间!StringBuffer 就是String的一个专用容器
比方你有水,你要把水放在一个专用的水杯!
作者: Joemi    时间: 2014-8-4 18:28
stringBuffer不定长
作者: ysdolls    时间: 2014-8-4 18:31
String:字符串常量
StringBuffer:字符串变量
StringBuilder:字符串变量
String 是字符串常量,也就是不可改变的对象。举个例子
  1. String s = "abcd";
  2. s = s+1;
  3. System.out.print(s);// result : abcd1
复制代码

这样看似是改变的String的变量s,可为什么说是没有改变?其实过程是
1创建s对象  
2赋值abcd
3创建一个新的对象 执行第二行代码
所以 原来的s并没有改变,每当操作字符串时都是不断的创建新的对象,之前的被GC回收
所以说String效率低
而其他两个不同,两个容器,随意更换里面的内容,而不是创建新的对象。这样说可以理解吗?
作者: 朱道研    时间: 2014-8-4 18:35
可变字符串(StringBuffer)与不可变字符串(String),具体去百度。
作者: 燿陚√揚葳    时间: 2014-8-4 18:37
1.StringBuffer是一个容器,长度是可以改变的,String一旦初始化了就不可以改变了
2.StringBuffer可以操作多个数据类型,但最终都会变成字符串




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2