admin管理员组

文章数量:1611969

           StringBuffer str=new StringBuffer();

           StringBuffer str1=new StringBuffer(3);

           str.append("adad");
           str1.append("ffcdaaa");
           System.out.println(str.capacity()); //16
           System.out.println(str1.capacity()); //8

   str1.capacity()的结果是8,因为StringBuffer的capacity()构造方法默认创建16个字符的缓冲区,存放在内部数组,

  当你调用默认构造函数,缓冲区是16个字节, 例:str.capacity(),当你的字节长度超过16,按照(初始大小+1)*2增加  so(3+1)*2

因为初始化是3个字节,当str1.append()追加了7个字节后,是(3+1)*2,如果再追加到9个字节时,由于已经超出(初始大小+1)*2的长度了,所以结果会变成9

本文标签: 方法StringBufferCapacity