我们如何比较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