Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

ความแตกต่างระหว่าง StringBuffer และ StringBuilder ใน Java

StringBuffer และ StringBuilder ทั้งคู่เป็นคลาส mutable (เปลี่ยนแปลงได้) ใช้สำหรับดำเนินการกับออบเจ็กต์สตริง เช่น ย้อนกลับสตริง ต่อสตริง ฯลฯ เราสามารถแก้ไขสตริงได้โดยไม่ต้องสร้างออบเจ็กต์สตริงใหม่ StringBuffer เป็น thread-safe ส่วน StringBuilder ไม่ใช่ thread-safe ดังนั้นจึงเร็วกว่า StringBuffer นอกจากนี้ ตัวดำเนินการต่อสตริง + ภายในใช้คลาส StringBuffer หรือ StringBuilder ความแตกต่างดังต่อไปนี้

ลำดับหัวข้อString BufferString Builder
1พื้นฐานStringBuffer เปิดตัวมาพร้อมการเผยแพร่ Java เริ่มต้นเปิดตัวใน Java 5
2Synchronizedเป็น synchronized (ปลอดภัยเธรด)ไม่ใช่ synchronized (ไม่ปลอดภัยเธรด)
3ประสิทธิภาพปลอดภัยเธรด เธรดหลายตัวเข้าถึงพร้อมกันไม่ได้ จึงช้ากว่าไม่ปลอดภัยเธรด จึงเร็วกว่า StringBuffer
4Mutableเป็น mutable แก้ไขสตริงได้โดยไม่สร้างออบเจ็กต์ใหม่เป็น mutable เช่นกัน
5ที่เก็บข้อมูลHeapHeap

ตัวอย่าง 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); 
    } 
}