【java performance】确定StringBuffer的容量

StringBuffer的构造器会创建一个默认大小(通常是16)的字符数组。在使用中,如果超出这个大小,就会重新分配内存,创建一个更大的数组,并将原先的数组复制过来,再丢弃旧的数组。在大多数情况下,你可以在创建StringBuffer的时候指定大小,这样就避免了在容量不够的时候自动增长,以提高性能。

 

例子:        

public class RSBC {

   void method () {

        StringBuffer buffer = newStringBuffer(); // violation

       buffer.append ("hello");

    }

}

        

更正:        

为StringBuffer提供寝大小。        

public class RSBC {

   void method () {

       StringBuffer buffer = new StringBuffer(MAX);

       buffer.append("hello");

    }

   private final int MAX = 100;

}

        

参考资料:

Dov Bulka, "Java Performance andScalability Volume 1: Server-Side Programming

Techniques" Addison Wesley, ISBN:0-201-70429-3 p.30 – 31

你可能感兴趣的:(【java performance】确定StringBuffer的容量)