众所周知,StringBuffer、StringBuilder主要应用场景为字符串的拼接,代替String类型,可以提高效率,节约内存消耗,通过原码分析StringBuffer的和字符串相关操作的方法都使用 synchronized 关键字,而StringBuilder和字符串操作相关的方法没有使用 synchronized ,
所以实际使用中,都是使用StringBuilder
StringBuffer StringBuilder
发布版本: JDK1.0 JDK1.5
效率: 低 高
线程安全: 安全 不安全
StringBuffer原码如下:
public synchronized StringBuffer append(String str) {
super.append(str);
return this;
}
public synchronized StringBuffer append(Object obj) {
super.append(String.valueOf(obj));
return this;
}
..............................
StringBuilder原码如下:
public StringBuilder append(Object obj) {
return append(String.valueOf(obj));
}
public StringBuilder append(String str) {
super.append(str);
return this;
}
..............................