处理文本值是程序员的日常工作,通常用标准的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”);