直接通过new StringBuffer(String str);时,capacity是str.length+16,从源码可知: 如果直接是new StringBuffer(),则capacity为16,见下图: 如果小于16则默认容器的大小为16。如果大于16则会调用expandCapacity 函数进行容量的扩展。 由源码可以看到扩展的规则是把旧的容量(value的长度)*2+2,然后与现有的比较,如果小于...
// public StringBuffer(int capacity):指定容量的字符串缓冲区对象 StringBuffer sb2 = new StringBuffer(50); System.out.println("sb2:" + sb2); System.out.println("sb2.capacity():" + sb2.capacity()); System.out.println("sb2.length():" + sb2.length()); System.out.println("---");...
(3)为了获得更好的性能,在构造 StirngBuffer 或 StirngBuilder 时应尽可能指定它们的容量。当然,如果你操作的字符串长度(length)不超过 16 个字符就不用了,当不指定容量(capacity)时默认构造一个容量为16的对象。不指定容量会显著降低性能。 (4)StringBuilder一般使用在方法内部来完成类似"+"功能,因为是线程不安全...
1.StringBuffer()的初始容量可以容纳16个字符,当该对象的实体存放的字符的长度大于16时,实体容量就自动增加。StringBuffer对象可以通过length()方法获取实体中存放的字符序列长度,通过capacity()方法来获取当前实体的实际容量。 2.StringBuffer(int size)可以指定分配给该对象的实体的初始容量参数为参数size指定的字符个数...
StringBuffer(CharSequence seq) publicjava.lang.StringBuilder(CharSequence seq) 构造一个字符串缓冲区,它包含与指定的 CharSequence 相同的字符。StringBuffer(int capacity) 构造一个不带字符,但具有指定初始容量的字符串缓冲区。StringBuffer(String str) 构造一个字符串缓冲区,并将其内容初始化为指定的字符串内容...
我们都知道,java中字符串都是用String, 内容和长度都是不可变的。如果想使用可变长度的,可以使用类 StringBuffer 该类的方法是安全的,可以保证线程安全 使用的过程中学到了capacity的用法,看解释是返回当前的容量。我们来试试这个方法,看看返回 package WorkStudy; ...
// minimumCapacity是当前已经存储的字符长度+要追加的字符长度 // value.length 是当前容量 // 所以新容量=max(2*旧容量+2,追加后的字符长度) void expandCapacity(int minimumCapacity) { int newCapacity = value.length * 2 + 2; if (newCapacity - minimumCapacity < 0) newCapacity = minimumCapacity...
参考链接: Java StringBuffer类 StringBuffer类和String类差不多,都是字符串类,只是StringBuffer在对字符串进行修改时不会生成新的对象,所以效率相对较高,占用空间也小。 length()方法和capacity()方法都是获取StringBuffer的长度。 length()返回字符串的实际长度; capacity()返回字符串所占容器的总大小。 举例: 可...
capacity(); } 代码示例来源:origin: stackoverflow.com %pragma(java) modulecode = %{ public static int foo(String in, StringBuffer out) { int sz[] = {out.capacity()}; byte ret[] = new byte[out.capacity()]; final int v = test.foo(in, ret, sz); // Or whatever your preferred ...
If the current capacity is less than the argument, then a new internal array is allocated with greater capacity. The new capacity is the larger of: The minimumCapacity argument. Twice the old capacity, plus 2. If the minimumCapacity argument is nonpositive, this method takes no action ...