StringBuffer โดยทั่วไปวัตถุจะปลอดภัยที่จะใช้ในสภาพแวดล้อมแบบมัลติเธรด โดยที่หลายเธรดอาจพยายามเข้าถึง StringBuffer . เดียวกัน วัตถุในเวลาเดียวกัน StringBuilder เป็นการแทนที่สำหรับ Stread-safe StringBuffe ร คลาสและทำงานได้เร็วกว่ามากเนื่องจากไม่มี ซิงโครไนซ์ วิธีการ หากเราดำเนินการสตริงจำนวนมากในเธรดเดียว เราก็จะได้รับ ประสิทธิภาพ . มากมาย เมื่อใช้คลาสนี้
ตัวอย่าง
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