StringBuffer和StringBuilder

StringBuffer和StringBuilder


Strng、StringBuffer、StringBuilder的异同

package com.cheng.string;

public class StringBufferBuilder01 {
   public static void main(String[] args) {
       //String、StringBuffer、StringBuilder的异同
       //String 不可变的字符序列 底层使用char[]存储
       //StringBuffer 不可变的字符序列 底层使用char[]存储 线程安全,效率低
       //StringBuilder 不可变的字符序列 底层使用char[]存储 线程不安全,效率高
       StringBuffer str = new StringBuffer("123de");
       str.setCharAt(2,'h');//替换字符
       System.out.println(str);//12hde
     /*
     创建对象时底层char[]的长度
     String s1 = new String();   char[] value = new char[0]
     String s2 = new String("zbc"); char value = new char[3]
     StringBuffer s3 = new String(); char value = new char[16]
     s3.append('a'); value[0] = 'a'添加
     s3.append('b'); value[1] = 'b'

     StringBuffer s4 = new String("zbc"); char value = new char["zbc".length + 16]
     System.out.println(s4.length); 输出3
     如果要添加的数据底层数组容不下了,则需要扩充底层的数组
     默认情况霞扩充为原来的2倍+2,同时 将原有数组的元素复制到新数组中去
      */
  }
}

上一篇:JSON递归解析(二)


下一篇:string stringbuffer stringbuilder