public static void main(String[] args) {
// TODO Auto-generated method stub
String str="aa";
str=str+"fd"+"dfd";
// + 是系统级符号重载,调用的是StringBuilder 的appende方法。
// string 底层是 finale的字符数组
// buffer 和 builder 的底层不是final的字符数组,所以可以对数据再次编辑,而不用创建一个新数组,
StringBuffer sb=new StringBuffer("ad");
StringBuilder sb1=new StringBuilder("ad");
// 在对一个字符串频繁增加时, 需要使用 buffer 或 buider ,他们引用了ArrayList中数据缓冲区的概念
// 底层的字符数组长度大于实际储存数据的量,便于增加数据,长度不够时扩容。
// + 的完整流程
str = str+str;//↓↓↓
StringBuffer copy1=new StringBuffer(str);
StringBuilder copy2=new StringBuilder(str);
copy1.append(copy2);
str=copy1.toString();//一共4个过程
// buffer 和builder 的区别在于,buffe的底层数组是有资源锁的,。线程安全,代价是并发速度慢
}
}
String StringBuilder StringBuffer(12.3)
最新推荐文章于 2023-09-22 23:02:50 发布