本文共 559 字,大约阅读时间需要 1 分钟。
**
**
StringBuffer中的方法大都采用了 synchronized 关键字进行修饰,因此是线程安全的,而StringBuilder没有这个修饰,可以被认为是线程不安全的。StringBuffer的append()方法的源码中我们我可以看到,
@Override //增加了synchronized 关键字 public synchronized StringBuffer append(int i) { toStringCache = null; super.append(i); return this; } StringBuilder的append()方法的源码中并没有添加synchronized关键字修饰:@Override
public StringBuilder append(int i) { super.append(i); return this; } 总结 在单线程程序下,StringBuilder效率更快,因为它不需要加锁,但同时它不具备多线程安全,有可能造成结果的不准确;而StringBuffer则每次都需要判断锁,效率相对更低,但同时是线程安全的,使用的时候可以根据具体的情况来判断使用;转载地址:http://bfmzi.baihongyu.com/