更新时间:2023年05月16日09时35分 来源:传智教育 浏览次数:
String和StringBuffer都是Java中用于表示字符串的类,但是它们有一些重要的区别。
String类是不可变的,这意味着一旦创建了一个字符串对象,就不能更改它的值。每次对字符串进行修改操作时,实际上都会创建一个新的字符串对象。这样的特点对于一些需要频繁修改字符串的操作会有较大的性能损耗。
StringBuffer类是可变的,它允许对字符串进行修改操作,而不用每次都创建新的字符串对象。因此,当需要频繁修改字符串时,使用StringBuffer可以获得更好的性能。
下面是一个简单的代码演示:
public class StringVsStringBuffer { public static void main(String[] args) { String s = "Hello "; s += "World"; // 会创建一个新的字符串对象 System.out.println(s); // 输出: "Hello World" StringBuffer sb = new StringBuffer("Hello "); sb.append("World"); // 不会创建新的字符串对象 System.out.println(sb.toString()); // 输出: "Hello World" } }
在这个示例中,我们使用了String和StringBuffer类来拼接字符串。对于String类,每次执行字符串拼接操作都会创建一个新的字符串对象,而对于StringBuffer类,只会修改现有的字符串对象,不会创建新的对象。