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