黑马程序员技术交流社区

标题: 关于String和Stringbuffer的区别? [打印本页]

作者: 651012160    时间: 2013-12-20 17:47
标题: 关于String和Stringbuffer的区别?
本帖最后由 651012160 于 2013-12-21 09:00 编辑

求前辈帮我举一个具体的例子!{:soso__3110130392203091378_3:}





作者: 四五六七八    时间: 2013-12-20 18:15
Stirng实质上就是一个private final char value[]; 这是个常量内容不能更改

StringBuffer 内容保存在 char[] value;  这就是个普通的字符数组 随便插入 修改
你看下源码就明白了
作者: 筱厸厸    时间: 2013-12-20 19:10
String 类是final 类,
        例如  String str = "a";
         str += "b";
        过程是相当于 str 重新指向"ab"对象,而以前的 "a" 对象还是存在,每次连接字符串都会产生对象                   碎片,效率低

StringBuffer 也是final类,只是连接字符串的功能用append方法代替了“ + ”,它是在现有的字符串上追加字符串,而不是重新指向新的字符串,它相当于是一个动态的字符数组,初始长度16,当当前字符串的长度达到数组长度上限时会另外申请一定长度的数组,将当前的内容复制到新数组中,新数组的长度默认是当前数组长度的两倍。
         
                     




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