为了更改StringBuffer对象的默认容量,我们使用了该ensureCapacity()
方法。当当前容量小于传递的参数时,则会分配一个具有更大容量的新内部阵列。
新容量是minimumCapacity参数的较大值,是旧容量的两倍,再加上2。较大的容量。如果最小容量为非正数,则它将保持休眠状态并且不执行任何操作。
声明-java.lang.StringBuffer.ensureCapacity()方法声明如下-
public void ensureCapacity(int minimumCapacity)
让我们看看该ensureCapacity()
方法的工作原理
public class Example { public static void main(String[] args) { StringBuffer sb = new StringBuffer("Hello"); System.out.println(sb); System.out.println("Original capacity : "+sb.capacity()); sb.ensureCapacity(29); // the (twice of old capacity + 2) argument is greater System.out.println("New capacity : "+sb.capacity()); System.out.println(); StringBuffer sb1 = new StringBuffer("Hi"); System.out.println(sb1); System.out.println("Original capacity : "+sb1.capacity()); sb1.ensureCapacity(40); // the minimumCapacity argument is greater System.out.println("New capacity : "+sb1.capacity()); } }
输出结果
Hello Original capacity : 21 New capacity : 44 Hi Original capacity : 18 New capacity : 40