String、StringBuffer、StringBuilder区别

String:不可变字符序列,顶层char[]  修饰符 final

StringBuffer:可变字符序列,线程安全,效率低 。 底层 char[]  无参初始容量为16

StringBuilder:可变字符序列,线程不安全,效率高 。 底层 char[]  无参初始容量为16

StringBuffer、StringBuilder 扩容问题,如果添加的数据底层数组盛不下了,那就需要扩容底层数组。

            默认情况下,扩容为原来的2倍+2,同时将原有数组中的元素复制到新数组中。

建议:开发中应使用StringBuffer(int capacity)或StringBuilder(int capacity)构造器 ,来减少扩容操作

 

posted @ 2020-03-25 15:07  玄空2  阅读(140)  评论(0编辑  收藏  举报