赛迪网 > IT技术 Java > 最新更新
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

Java2 参考大全:第13 章 字符串处理 (10)

发布时间:2006.05.11 01:36     来源:清华大学出版社    作者:Herbert Schildt 著 张玉清 吴溥峰等 译

13.10 StringBuffer

StringBuffer是提供了大量的字符串功能的字符串(String)类的对等类。正如你所知,字符串(String)表示了定长,不可变的字符序列。相反,StringBuffer表示了可变长的和可写的字符序列。StringBuffer可有插入其中或追加其后的字符或子字符串。StringBuffer可以针对这些添加自动地增加空间,同时它通常还有比实际需要更多的预留字符,从而允许增加空间。Java大量使用这两种类,但是多数程序员仅仅处理字符串(String)而通过重载+运算符让Java在后台处理StringBuffer

13.10.1 StringBuffer构造函数

StringBuffer定义了下面三个构造函数:

StringBuffer( )

StringBuffer(int size)

StringBuffer(String str)

默认构造函数(无参数)预留了16个字符的空间。该空间不需再分配。第二种形式接收一个整数参数,清楚地设置缓冲区的大小。第三种形式接收一个字符串(String)参数,设置StringBuffer对象的初始内容,同时不进行再分配地多预留了16个字符的空间。当没有指定缓冲区的大小时,StringBuffer分配了16个附加字符的空间,这是因为再分配在时间上代价很大。而且频繁地再分配可以产生内存碎片。StringBuffer通过给一些额外的字符分配空间,减少了再分配操作发生的次数。

13.10.2 length( )capacity( )

通过调用length( )方法可以得到当前StringBuffer的长度。而通过调用capacity( )方法可以得到总的分配容量。它们的一般形式如下:

int length( )

int capacity( )

这里是一个例子:

// StringBuffer length vs. capacity.

class StringBufferDemo {

public static void main(String args[]) {

StringBuffer sb = new StringBuffer("Hello");

System.out.println("buffer = " + sb);

System.out.println("length = " + sb.length());

System.out.println("capacity = " + sb.capacity());

}

}

下面是这个程序的输出,它说明了StringBuffer如何为另外的处理预留额外的空间:

buffer = Hello

length = 5

capacity = 21

由于sb在创建时由字符串“Hello”初始化,因此它的长度为5。因为给16个附加的字符自动增加了存储空间,因此它的存储容量为21

<<上一页 1 2 3 4 5 6 7 8 9 10 11 12 下一页>>


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
[政务][电信][金融][农业][制造业][中小企业]
[CIO][ERP][协同][IT管理][中间件][电子商务]
[政策][地方][专家][评估][辞典][博客][社区]
· 专题:一路畅通构想曲——让出行不再遭遇堵车
· CIO工作亲历:企业ERP选型不能忽视"选人关"
· 综述:信息化建设给中国监狱带来的各种变化
· 金融业风险管理和法规遵从有五点需考虑的因素
· 保险业CIO关注:该如何建立统一高效的CRM体系
· 调查显示:多数CIO对IT规划仍存在困惑和误解
  博客·论坛 ·曾剑秋·项立刚·Java学习·网管