当前位置: 代码迷 >> Java相关 >> StringBuffer中的capacity()方法
  详细解决方案

StringBuffer中的capacity()方法

热度:138   发布时间:2010-06-05 17:08:45.0
StringBuffer中的capacity()方法
capacity()方法说是返回当前容量,容量是什么,和length()方法有啥区别??
搜索更多相关的解决方案: capacity  StringBuffer  

----------------解决方案--------------------------------------------------------
length是现有字符串的长度。capacity是还没有分配的空间。如果你新插入字符串超过这个空间,更大的空间将会重新分配给它。
----------------解决方案--------------------------------------------------------
就是说你这个对象的空间多大

----------------解决方案--------------------------------------------------------
capacity()返回StringBuffer的容量, length()返回StringBuffer里放着的字符串的长度。


StringBuffer在内部维护一个字符数组,当你使用缺省的构造函数来创建StringBuffer对象的时候, StringBuffer的容量被初始化为16个字符,也就是说缺省容量就是16个字符。当StringBuffer达到最大容 量的时候,它会将自身容量增加到当前的2倍再加2,也就是(2*旧值+2)。

  如果你使用缺省值,初始化之后接着往里面追加字符,在你追加到第17(原文是16,其实是错误的,因为在追加到第16个字符的时候,容量不会发生变化,很抱歉,以后会更严谨一些^+^)个字符的时候它会将容量增加 到34(2*16+2),当追加到34个字符的时候就会将容量增加到70(2*34+2)。无论何事只要StringBuffer 到达它的最大容量它就不得不创建一个新的字符数组然后重新将旧字符和新字符都拷贝一遍。所以给 StringBuffer设置一个合理的初始化容量值,会提升程序的性能。  

----------------解决方案--------------------------------------------------------
  相关解决方案