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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马陈旭东 中级黑马   /  2012-7-7 18:02  /  3250 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

忘了一点东西,求人帮忙回忆一下!

就是StringBuffer默认容量是16个字符。

请问它的容量是根据什么来定的呢?

这个容量又是怎么提升的呢?

StringBuilder 是否也是一样的呢?

3 个回复

倒序浏览
昨天上班无聊时实验了一下:'(   不过………………

初始为16,当初始时有参数,则是16+参数长度。

当往里添加字符串时,只有当前容量不够时,才会去扩充容量……不过扩充方法不太清楚,有时是当前容量+1的2倍,有时好像不是,搞的我头晕………………

求高人&
回复 使用道具 举报
本帖最后由 yulu53 于 2012-7-7 18:14 编辑

StringBuffer有两个属性 length和capacity .其中length属性代表其包含的字符串序列,
capacity属性代表StringBuffer容量,capacity通常比length大,我们无需关心capacity属性
StringBuffer和StringBuilder 基本类似,不同的是 StringBuffer为线程安全,StringBuilder不是线程安全
因此StringBuilder性能更高




回复 使用道具 举报
StringBuffer的容量默认是16个字符。当StringBuffer存到最大容量的时候,
它将会把自身的容量增加到原来的2倍再加2,也就是34.
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马