黑马程序员技术交流社区

标题: StringBuffer的默认容量 [打印本页]

作者: 黑马陈旭东    时间: 2012-7-7 18:02
标题: StringBuffer的默认容量
忘了一点东西,求人帮忙回忆一下!

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

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

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

StringBuilder 是否也是一样的呢?

作者: 丁二跃    时间: 2012-7-7 18:08
昨天上班无聊时实验了一下:'(   不过………………

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

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

求高人&
作者: yulu53    时间: 2012-7-7 18:13
本帖最后由 yulu53 于 2012-7-7 18:14 编辑

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





作者: 郑庆伟    时间: 2012-7-7 18:34
StringBuffer的容量默认是16个字符。当StringBuffer存到最大容量的时候,
它将会把自身的容量增加到原来的2倍再加2,也就是34.




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