บัฟเฟอร์สตริงและ StringBuilder เป็นคลาสที่เปลี่ยนแปลงได้ซึ่งสามารถใช้เพื่อดำเนินการกับวัตถุสตริง เช่น การย้อนกลับของสตริง การต่อสตริง และอื่นๆ เราสามารถแก้ไขสตริงโดยไม่ต้องสร้างวัตถุใหม่ของสตริง บัฟเฟอร์สตริงเป็นแบบปลอดภัยต่อเธรดในขณะที่ตัวสร้างสตริงไม่ปลอดภัยสำหรับเธรด ดังนั้นจึงเร็วกว่าบัฟเฟอร์สตริง นอกจากนี้ ตัวดำเนินการ string concat + ภายในยังใช้คลาส StringBuffer หรือ StringBuilder ด้านล่างนี้คือข้อแตกต่าง
| ซีเนียร์ เลขที่ | คีย์ | บัฟเฟอร์สตริง | ตัวสร้างสตริง |
|---|---|---|---|
| 1 | พื้นฐาน | StringBuffer เปิดตัวพร้อมกับ Java . รุ่นแรก | เปิดตัวใน Java 5 |
| 2 | ซิงโครไนซ์ | มันถูกซิงโครไนซ์ | มันไม่ซิงโครไนซ์ |
| 3 | ประสิทธิภาพ | เป็นเธรดที่ปลอดภัย ดังนั้น หลายเธรดไม่สามารถเข้าถึงได้พร้อมกัน ดังนั้นจึงช้า | ไม่ปลอดภัยสำหรับเธรดจึงเร็วกว่า String Buffer |
| 4 | Mutable | เปลี่ยนแปลงได้ เราสามารถแก้ไขสตริงโดยไม่ต้องสร้างวัตถุ | มันยังสามารถเปลี่ยนแปลงได้ |
| 5 | ที่เก็บข้อมูล | ฮีป | ฮีป |
ตัวอย่างของ StringBuilder
public class StringBuilderExample{
public static void main(String[] args){
StringBuilder builder=new StringBuilder("Hi");
builder.append("Java 8");
System.out.println("StringBuilderExample" +builder);
}
} ตัวอย่าง StringBuffer
public class StringBufferExample{
public static void main(String[] args){
StringBuffer buffer=new StringBuffer("Hi");
buffer.append("Java 8");
System.out.println("StringBufferExample" +buffer);
}
}