目录
为什么StringBuffer和StringBuilder是可变的
StringBuilder和StringBuffer
(StringBuider和StringBuffer继承自同一个类,所以它们的方法是都是差不多的)
底层是一个byte数组,没有被final修饰
-
父亲是AbstractStringBuilder
-
StringBuilder是可变的字符序列
-
StringBuilder是线程不安全的。StringBuffer是线程安全的(里面的方法都是被synchronized修饰的),效率低
-
为什么StringBuffer和StringBuilder是可变的
我看过源代码StringBuffer和StringBuiler底层内部实际上是一个byte数组,这个byte数组没有被final修饰,StringBuffer和StringBuilder的初始化容量我记得是16,当这个byte数组存满了之后会进行扩容,底层调用了数组拷贝的System.arraycopy()方法,是这样扩容的。所以StringBuffer和bStrinBuider是可变的,比较适合于字符串频繁拼接的操作;
构造器
new StringBuilder();
new StringBuilder(String str);
常见Api
(跟String中的差不多)