知识大全 StringBuffer帮你减轻Java的负担

Posted

篇首语:苟利国家生死以,岂因祸福避趋之。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 StringBuffer帮你减轻Java的负担相关的知识,希望对你有一定的参考价值。

StringBuffer帮你减轻Java的负担  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  处理文本值是程序员的日常工作 通常用标准的Java String类来完成与文本有关的需求 它对于很多小任务确实很适用 但是如果处理的是大型任务 它会大量消耗系统资源 由于这个原因 JDK引入了StringBuffer类以提供一条处理字符串的有效路径 让我们来看看怎样用这个类来提升性能      为什么不用标准的String?  Java String对象是常量字符串 一旦被初始化和付值 它的值和所分配的内存就被固定了 如果硬要改变它的值 将会产生一个包含新值的新String对象 这就是String对象会消耗掉很多资源的原因 下面的代码创建了一个String对象并使用串联(+)符号来为它添加更多字符     String sample =new String( );    sample += is ;    sample += the place ;    sample += to be ;    系统最终会创建四个String对象来完成上面的替换 其中第一个的文本是 然后每次添加文本时都会创建一个新的对象     这种方法的问题在于为了这么一个简单的过程而消耗了太多的资源 在这个例子中其影响也许很小(指给出了很少的代码) 但是在一个拥有多得多操作的大型应用程序中这样做就会使性能下降 StringBuffer类所要解决的正是这个问题      用StringBuffer处理字符串  StringBuffer类被设计用与创建和操作动态字符串信息 为该对象分配的内存会自动扩展以容纳新增的文本 有三种方法来创建一个新的StringBuffer对象 使用初始化字符串 设定大小以及使用默认构造函数     StringBuffer sb=new StringBuffer();    StringBuffer sb=new StringBuffer( );    StringBuffer sb=new StringBuffer( );    第一行创建了不包含任何文本的对象 默认的容量是 个字符 类的第二个实例也不包含文本 容量是 个字符 最后一行创建了一个拥有初始化值的对象 StringBuffer类位于java lang基础包中 因此要使用它的话不需要特殊的引入语句     一旦创建了StringBuffer类的对象 就可以使用StringBuffer类的大量方法和属性 最显著的方法是append 它将文本添加到当前StringBuffer对象内容的结尾 下面的代码示例了append方法的语法     StringBuffer sb=new StringBuffer();    sb append( B );    sb append( u );    sb append( i );    sb append( l );    sb append( d );    sb append( e );    sb append( r );    sb append( );    System out println(sb toString());    这些代码创建了字符串并将它送往标准输出 但是只创建了一个对象 如果使用String对象就需要八个以上的对象 注意代码利用了StringBuffer类的toString方法 这个方法将其内容转换成一个可以被用于输出的字符串对象 它允许操作对应的文本用于输出或数据存储     append方法有十种重载形式 允许将各种类型的数据添加到对象的末尾 StringBuffer类还提供了处理对象内部数据的方法      StringBuffer的容量  可以使用capacity和length方法来设定对象内的字符数 capacity方法返回为对象分配的字符数(内存) 如果超过了容量 它会自动扩展以符合需求 length方法返回对象目前存储的字符数 可以通过setLength方法来增加其长度 另外 对象的容量可以通过ensureCapacity方法来扩展 它建立了对象的最小容量 因此如果超出则不会有任何问题 下面的代码用到了这些方法     StringBuffer sb=new StringBuffer();    sb ensureCapacity( );    sb append( is awesome! );    Systrm out println(sb toString());    sb setLength( );    Systrm out println(sb toString());    代码设置了字符串的容量并为其付值 length属性被重新设置了 因此文本被截断了 输入结果如下      is awesome!         操作字符串  还有更多的方法来处理存储在StringBuffer对象内的字符串 以下列举了几个例子     CharAt返回字符串中的单个字符   SetCharAt为字符串中的单个字符付值或进行替换   GetChars返回字符串的一个子字符串   Insert在字符串指定位置插入值 它有多个重载版本以容纳各种数据类型   Substring返回字符串的一个子集   Reverse倒置StringBuffer的内容   所有的方法对于操作值来说都是很有用的 但是reverse方法最酷了——它使你只用一个调用就轻松地倒置了一个字符串 下面的代码和数出结果作了示范     StringBuffer sb=new StringBuffer();    sb ensureCapacity( );    sb append( ! );    System out println(sb toString());    sb reverse();    Systrm out println(sb toString());    输出   !    !moc redliuB     StringBuffer的优势  字符串的使用贯穿于决大多数应用程序 不管是作为用户界面的标识或在后台处理从数据库取回的值 通常 这些值并不符合要求 需要处理 你可以使用String类 但是它并不是设计成处理动态值的 而StringBuffer类正好填补了这个需求并使得系统资源的利用更加有效 cha138/Article/program/Java/JSP/201311/19252

相关参考

知识大全 Java中的String、StringBuffer和Math类

Java中的String、StringBuffer和Math类  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来

知识大全 用Java写出一段string和stringbuffer的代码

用Java写出一段string和stringbuffer的代码  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来

知识大全 如何减轻基层负担

如何减轻基层负担基层是落实各项工作的终端,“上面千条线,下面一根针。”基层有压力是正常的,但如果压力过大,就难以有条不紊地开展工作。各级机关应充分考虑到基层的实际承受能力,在安排任务时科学制定工作内容

知识大全 减轻JavaScript测试和调试负担

减轻JavaScript测试和调试负担  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!像JSPASP

系统性红斑狼疮肾炎如何减轻肾脏的负担

在对系统性红斑狼疮肾炎的治疗过程中,通过一些药物等手段来有效的控制狼疮的活动是比较关键的,但是患者在接受治疗时还应该注意通过一些方法来有效的减轻肾脏负担,以免因为肾脏功能衰弱而影响系统性红斑狼疮肾炎的

系统性红斑狼疮肾炎如何减轻肾脏的负担

在对系统性红斑狼疮肾炎的治疗过程中,通过一些药物等手段来有效的控制狼疮的活动是比较关键的,但是患者在接受治疗时还应该注意通过一些方法来有效的减轻肾脏负担,以免因为肾脏功能衰弱而影响系统性红斑狼疮肾炎的

做家务活时如何减轻腰部的负担?

虽然现在许多家庭都有洗衣机、洗碗机、吸尘器等现代化电器,把人们从繁劳的家务中解脱出来,但仍需要干象择菜、洗菜、洗肉、切菜、淘米、洗小件物品等家务活,如不注意姿势,往往会出现腰腿痛,可采取以下措施来预防

西汉初年,汉高祖和他的后继者文帝、景帝注意减轻农民的负担、兵役和徭役负担,注重发展农业生产,导致汉初统治者采取这些政策的

西汉初年,汉高祖和他的后继者文帝、景帝注意减轻农民的负担、兵役和徭役负担,注重发展农业生产,导致汉初统治者采取这些政策的主要原因是_____。A、皇家奢侈生活的需要B、秦朝灭亡的教训C、大臣的建议D、

患者生了癌症以后怎么办,家属怎样减轻其负担?

当患者发生了癌症之后,应当从下列3个方面对待现实。  (1)密切配合医护人员,积极进行治疗,定期复查。  (2)力求分散注意力,树立勇气和信心与癌症作斗争,克服精神压力和情绪低落。坚持力所能及的体育锻

患者生了癌症以后怎么办,家属怎样减轻其负担?

当患者发生了癌症之后,应当从下列3个方面对待现实。  (1)密切配合医护人员,积极进行治疗,定期复查。  (2)力求分散注意力,树立勇气和信心与癌症作斗争,克服精神压力和情绪低落。坚持力所能及的体育锻