StringBuffer str = new StringBuffer( 10 ) ;这里的10是str的容量,我要是想在这10个容量里写东西,要怎么写呢?

raymonshi 2009-02-03 05:43:48
这里的10是str的容量,我要是想在这10个容量里写东西,要怎么写呢?不会是10的容量太小吧。
...全文
662 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
kao331431214 2009-02-03
  • 打赏
  • 举报
回复
路过学习
raymonshi 2009-02-03
  • 打赏
  • 举报
回复
写这么多,谢谢啦
xiaobaitu7788 2009-02-03
  • 打赏
  • 举报
回复
嘿嘿
ycnanevol 2009-02-03
  • 打赏
  • 举报
回复
楼上你快我一步... 可以的
ycnanevol 2009-02-03
  • 打赏
  • 举报
回复
你这里定义的10只是初始容量,默认的是16
想往这里写呢,用appand()方法就可以啦
xiaobaitu7788 2009-02-03
  • 打赏
  • 举报
回复
StringBuffer是一个用于存放动态存放字符串数据的类,他继承自java.lang.AbstractStringBuilder这个类。

所谓动态存放是指:你无需考虑StringBuffer大小的问题。
当你利用StringBuffer的append方法向其自身添加字符串的时候,如果此时StringBuffer默认提供的空间大小不够用,
那么它会自动扩展自身的存储空间,以保证数据能够正常的放入到StringBuffer其中。

你刚才在上面写道的 new StringBuffer(10)
我告诉你,StringBuffer默认的存储空间大小是16个字符,也就是说 new StringBuffer() 就等于 new StringBuffer(16),这回知道了吧。

StringBuffer的底层是利用它的父类(AbstractStringBuilder)内部的一个默认长度为16的字符数组来存放数据的。(即:char value[];)

每当你利用 StringBuffer的append方法向其中添加一个字符串的时候StringBuffer都会调用其父类(AbstractStringBuilder)的append方法,
然后AbstractStringBuilder会判断其内部用于存放数据的那个char[]数组是否已经满了,
(1)如果没有满,就会将你传入的字符串转化为
字符并存入到那个字符数组中(即: str.getChars(0, len, value, count);)。
(2)而如果那个char[]数组已经满了,那么AbstractStringBuilder会创建一个大小为当前数组两倍的新的char[]数组。
然后利用System.arraycopy(value, 0, newValue, 0, count);将原始数据拷贝到这个新的数组中即可。


就是这样啦~~
写的我手的疼了。。。

牛年大吉~~

chxy148 2009-02-03
  • 打赏
  • 举报
回复
同意四楼
不善^ 2009-02-03
  • 打赏
  • 举报
回复
StringBuffer的好处就是不需要限制它的容量大小,可以节省空间,想加内容就调用StringBuffer类中的append()方法
想删除就调用delete()方法
总之这个类有很多方法很实用你可以去API里看看
ZangXT 2009-02-03
  • 打赏
  • 举报
回复
容量小的话会自己扩大。
mayuanfei 2009-02-03
  • 打赏
  • 举报
回复
str.append("0123456789");
healer_kx 2009-02-03
  • 打赏
  • 举报
回复
str.append("content");

62,635

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧