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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 651012160 中级黑马   /  2013-12-20 17:47  /  1172 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 651012160 于 2013-12-21 09:00 编辑

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




评分

参与人数 1技术分 +1 收起 理由
FFF + 1 淡定

查看全部评分

2 个回复

倒序浏览
Stirng实质上就是一个private final char value[]; 这是个常量内容不能更改

StringBuffer 内容保存在 char[] value;  这就是个普通的字符数组 随便插入 修改
你看下源码就明白了

评分

参与人数 1黑马币 +3 收起 理由
FFF + 3 回答不够完善。

查看全部评分

回复 使用道具 举报
String 类是final 类,
        例如  String str = "a";
         str += "b";
        过程是相当于 str 重新指向"ab"对象,而以前的 "a" 对象还是存在,每次连接字符串都会产生对象                   碎片,效率低

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

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 鼓励新同学!+1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马