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,代码仍然可以运行。这是否意味着