บัฟเฟอร์สตริงและ 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); } }