我们如何比较Java中的StringBuilder和StringBuffer?
该StringBuffer的 对象通常是安全的使用多线程环境中多个线程可能试图访问同一StringBuffer的 同时对象。该StringBuilder的 是用于替换线程安全StringBuffe[R类和它的作品多,因为它已经没有更快的同步 方法。如果我们在单个线程中执行大量的String操作,则使用此类时可以获得很多性能 。
示例
public class CompareBuilderwithBufferTest {
public static void main(String []args) { stringBufferTest();
stringBuilderTest(); }
public static void stringBufferTest() {
long startTime = System.nanoTime();
StringBuffer sb = new StringBuffer();
for (int i=0; i < 1000; i++) {
sb.append((char) 'a');
}
System.out.println("StringBuffer test: " + (System.nanoTime() - startTime));
}
public static void stringBuilderTest() {
long startTime = System.nanoTime();
StringBuilder sb = new StringBuilder();
for (int i=0; i < 1000; i++) {
sb.append((char) 'a');
}
System.out.println("StringBuilder test: " + (System.nanoTime() - startTime));
}
}输出结果
StringBuffer test: 192595 StringBuilder test: 85733