社区
Java SE
帖子详情
StringBuffer str = new StringBuffer( 10 ) ;这里的10是str的容量,我要是想在这10个容量里写东西,要怎么写呢?
raymonshi
2009-02-03 05:43:48
这里的10是str的容量,我要是想在这10个容量里写东西,要怎么写呢?不会是10的容量太小吧。
...全文
662
11
打赏
收藏
StringBuffer str = new StringBuffer( 10 ) ;这里的10是str的容量,我要是想在这10个容量里写东西,要怎么写呢?
这里的10是str的容量,我要是想在这10个容量里写东西,要怎么写呢?不会是10的容量太小吧。
复制链接
扫一扫
分享
转发到动态
举报
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");
java面试题:
Str
ingBuffer
a=
new
Str
ingBuffer
(“A“);
Str
ingBuffer
b=
new
Str
ingBuffer
(“B“); operate
题目:System.out.println(a+","+b); 的值为什么 class Client_port{ public static void main(
Str
ing[] args...
Str
ingBuffer
a=
new
Str
ingBuffer
("A");
Str
ingBuffer
b=
new
Str
ingBuffer
("B"); ope...
2. 关于
Str
ingBuffer
创建对象和append函数传入null对象的情况
看下面的程序和输出结果: ...
Str
ingBuffer
sb =
new
Str
ingBuffer
(); sb.append(
str
); System.out.println(sb); System.out.println(sb.length());
Str
ingBuffer
sb1 =
new
Str
ingBuffer
...
Str
ingBuffer
详解
我们学习
Str
ingBuffer
之前先查一下一些定义,先做个简单的了解 可以看出,...public
Str
ingBuffer
() 构造一个其中不带字符的字符串缓冲区,其初始
容量
为 16 个字符。 public
Str
ingBuffer
(int cap...
Str
ing
str
=
new
Str
ing("abc")和
Str
ing
str
= "abc"区别
两者的内存分配:
Str
ing是一个特殊的包装类数据,可以用:
Str
ing
str
=
new
Str
ing(...而第二种是先在栈中创建一个对
Str
ing类的对象引用变量
str
,然后查找栈中有没有存放”abc”,如果没有,则将”abc”存放进栈
说说
Str
ing
str
= "hello,world" 和
Str
ing
str
=
new
Str
ing("hello world")的区别
不过不同的版本这个常量池的位置肯定是不同的! 1 创建的字符串变量在内存中的区别 两者看似都是创建了一个字符串对象,但在内存中确是各有各的
想
法。
Str
ing
str
1= “abc”; 在编译期,JVM会去常量池来查找是否...
Java SE
62,635
社区成员
307,269
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章