String 和 StringBuffer,StringBuilder 的区别
时间: 2024-06-14 20:03:30 浏览: 109
String及StringBuffer和StringBuilder的区别
String和StringBuffer/StringBuilder的区别在于String是不可变的,而StringBuffer/StringBuilder是可变的。这意味着,当你对一个String对象进行操作时,实际上是创建了一个新的String对象,而原始的String对象保持不变。而当你对一个StringBuffer/StringBuilder对象进行操作时,它的值会发生改变,而不会创建一个新的对象。
具体来说,StringBuffer和StringBuilder都是用来处理字符串的可变序列。它们都有append()、insert()、delete()等方法,可以对字符串进行修改。但是,StringBuffer是线程安全的,而StringBuilder是非线程安全的。因此,在多线程环境下,应该使用StringBuffer,而在单线程环境下,StringBuilder的性能更好。
下面是一个例子,演示了String和StringBuffer的区别:
```java
String str = "hello";
str += " world"; // 创建了一个新的String对象
System.out.println(str); // 输出:hello world
StringBuffer sb = new StringBuffer("hello");
sb.append(" world"); // 对原始对象进行修改
System.out.println(sb.toString()); // 输出:hello world
```
阅读全文