StringBuffer帮你减轻Java的负担

2016-02-19 19:00 4 1 收藏

今天图老师小编给大家精心推荐个StringBuffer帮你减轻Java的负担教程,一起来看看过程究竟如何进行吧!喜欢还请点个赞哦~

【 tulaoshi.com - 编程语言 】

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

来源:https://www.tulaoshi.com/n/20160219/1619806.html

延伸阅读
标签: 电脑入门
每一次编辑文本的时候,总会为选择字体发愁,中文字体还好说,可英文呢?一大长串可供选择的字体,查找麻烦不说,碰到没主意的时候,只能仰天长叹:这究竟该如何是好!Win7系统中内置了大量的字体,足有好几百个,绝大多数对用户来说都是陌生的,也都派不上用场。然而这么多的字体必然占用了不少的系统资源,影响了电脑性能的发挥,这样看来,删...
标签: PHP
使用前,先在根目录创建cache文件夹,然后运行1.php,第一次运行和第二次运行速度差异很大。 欢迎熟悉PHP的朋友使用和提意见。 使用方法:(请保存为1.php)
标签: 孕妇食谱
治孕吐食谱:陈皮卤牛肉 原料:Tulaoshi.Com瘦牛肉、酱油、陈皮、葱、姜、糖、酱油、水(2大匙)。 制法:把陈皮用水稍微泡软,葱洗净切断;牛肉洗净切成薄片,加酱油拌匀,腌10分钟;将腌好的牛肉一片一片放到热油里,油炸到稍干一些;把陈皮、葱、姜先爆香,然后加入酱油、糖、水和牛肉稍炒一下;把牛肉取...
最近媒体发出一条新闻,《美国高血压杂志》的一项最新研究发现:每周在外多吃一餐饭,患上前期高血压的风险就会提高6%。而且,年龄越大,这种在外吃饭带来的危险也会越大。 6个方法帮你减轻在外就餐的危害 其实这也不是什么新鲜消息了,经常外餐让人容易患上肥胖和慢性病的研究结果比比皆是。例如,一项研究分析了CADIA Study(...
做项目中经常用到String和StringBuilder,String可以用“+”来对字符串进行拼接,StringBuilder用append进行拼接,一直不明白既然可以用String,问什么还要用StringBuilder。尽管在做数据库查询的时候,习惯性的用了StringBuilder对查询语句进行拼接,但仍然不知道原因。今天看视频的时候,又看到了StringBuffer,感觉用法又差不多,所以特意查...

经验教程

519

收藏

17
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部