JDK源码阅读--StringBuilder
public final class StringBuilder
extends AbstractStringBuilder
implements java.io.Serializable, CharSequence
被final修饰,表示StringBuilder不能被其它类继承。
继承了AbstractStringBuilder抽象类,实现了 Serializable、CharSequence接口。
StringBuilder中的方法没有被Synchronized修饰,所以StringBuilder不是线程安全的。
1 /** 2 * Constructs a string builder with no characters in it and an 3 * initial capacity of 16 characters. 4 */ 5 public StringBuilder() { 6 super(16); 7 } 8 9 /** 10 * Constructs a string builder with no characters in it and an 11 * initial capacity specified by the {@code capacity} argument. 12 * 13 * @param capacity the initial capacity. 14 * @throws NegativeArraySizeException if the {@code capacity} 15 * argument is less than {@code 0}. 16 */ 17 public StringBuilder(int capacity) { 18 super(capacity); 19 } 20 21 /** 22 * Constructs a string builder initialized to the contents of the 23 * specified string. The initial capacity of the string builder is 24 * {@code 16} plus the length of the string argument. 25 * 26 * @param str the initial contents of the buffer. 27 */ 28 public StringBuilder(String str) { 29 super(str.length() + 16); 30 append(str); 31 }
StringBuilder的容量默认是16,当容量不够的时候,容量会继续增加16,依次类推。
不能只满足于写完代码运行结果正确就完事,时常考虑如何让代码更加简练更加容易维护、容易扩展和复用,只有这样才可以真正得到提高
--《来自大话设计模式》