java:StringBuffer和StringBuilder类

产生的原因-字符串的不变性

int num = 6;
num = 7;
String str = "aaa";
str = "bbb";

由于 String 是引用数据类型,当我们将 str 从 aaa 改为 bbb 的时候,是重新分配了一块空间,之前的 aaa 还是保留。
在这里插入图片描述
那么就会产生一个问题:

String str = "";
for (int i = 0; i < str.length; i++) {
    
    
	str += "hello";
}

这里我们得到的字符串是 10 个 hello 的拼接,但是我们每一次对 str 的改动都会在堆中分配很多没有必要的内存空间,这样就不太科学了,所以才有了 StringBuffer

用法

https://www.runoob.com/java/java-stringbuffer.html

区别

StringBuffer

  • 线程安全(多个人对字符串修改,不会出现问题)
  • 效率低

StringBuilder

  • 线程不安全(多个人对字符串修改,可能会出现问题)
  • 效率高

猜你喜欢

转载自blog.csdn.net/weixin_43972437/article/details/113870469