Avatar ·

StringBuilder和StringBuffer在Java中有什么区别?

大家好!我正在学习Java,并编写一个用于处理日志的小型服务器模块。我需要从多个片段中拼接字符串,我知道在循环中使用"+"进行拼接是不好的,因为会创建很多多余的String对象。 我开始使用StringBuffer,但我的团队领导说最好改用StringBuilder。我不太明白为什么。网上说这两个类做的是同一件事:允许在不创建新对象的情况下修改字符串。那为什么要有两个类?该选哪一个? 以下是我的代码示例: ```java public class LogBuilder { public static void main(String[] args) { StringBuffer log = new StringBuffer(); for (int i = 0; i < 1000; i++) { log.append("事件 #").append(i).append(": "); log.append("处理完成\n"); } System.out.println(log.toString()); } } ``` 如果我只是把StringBuffer换成StringBuilder,代码仍然可以运行。这是否意味着