在 Java 中,我们如何比较 StringBuilder 和 StringBuffer?
javaobject oriented programmingprogramming更新于 2024/5/11
StringBuffer 对象在多线程环境中通常可以安全使用,因为多个线程可能同时尝试访问同一个 StringBuffer 对象。StringBuilder 是线程安全的 StringBuffer 类的替代品,并且由于没有 synchronized 方法,因此运行速度更快。如果我们在单个线程中执行大量字符串操作,则使用此类可以获得很大的性能 提升。
示例
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