java中 String、StringBuffer、StringBuidler 有什么区别?
1、String是字符串常量, StringBuffer、StringBuilder是字符串变量
2、StringBuffer线程安全(方法用了synchronized修饰)、StringBuilder线程不安全
3、底层都是char[],String用了final 修饰,后二者初始容量是16+字符串的长度,追加前都会检查是否应该扩容.
扩容原则 newCapacity-(oldCapacity*2+2)>0 ? newCapacity : oldCapacity*2+2