| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 622 人关注过本帖
标题:看一下ensureCapacity!
只看楼主 加入收藏
jxry8888
Rank: 1
等 级:新手上路
帖 子:97
专家分:0
注 册:2006-8-13
收藏
 问题点数:0 回复次数:3 
看一下ensureCapacity!
class stringBufferDemo
{
public static void main(String[] args)
{
StringBuffer sb1 = new StringBuffer("ding jixiang");
sb1.ensureCapacity(48);//如果去了这一句为什么答案是(16+字符串的长度 ),那个16留在那干吗?
int n = sb1.capacity();
System.out.println(n);
}
}
答案怎么是58??

[此贴子已经被作者于2006-8-17 15:02:58编辑过]

搜索更多相关主题的帖子: 字符串 
2006-08-17 14:55
jxry8888
Rank: 1
等 级:新手上路
帖 子:97
专家分:0
注 册:2006-8-13
收藏
得分:0 

怎么没有人帮我看一下呀?


2006-08-17 21:54
NiceGirl
Rank: 2
等 级:新手上路
威 望:4
帖 子:909
专家分:0
注 册:2006-6-18
收藏
得分:0 
StringBuffer的缺省行为:
  StringBuffer在内部维护一个字符数组,当你使用缺省的构造函数来创建StringBuffer对象的时候,因为没有设置初始化字符长度,StringBuffer的容量被初始化为16个字符,也就是说缺省容量就是16个字符。当StringBuffer达到最大容量的时候,它会将自身容量增加到当前的2倍再加2,也就是(2*旧值+2)。
  如果你使用缺省值,初始化之后接着往里面追加字符,在你追加到第16个字符的时候它会将容量增加到34(2*16+2),当追加到34个字符的时候就会将容量增加到70(2*34+2)。

曾经以为百般艰难,蓦然回首,才发现已飞渡千山。。!
2006-08-18 17:00
jxry8888
Rank: 1
等 级:新手上路
帖 子:97
专家分:0
注 册:2006-8-13
收藏
得分:0 
多谢楼上的!

2006-08-23 06:50
快速回复:看一下ensureCapacity!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015773 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved