Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Sự khác biệt giữa StringBuffer và StringBuilder trong Java

StringBuffer và StringBuilder đều là các lớp mutable (có thể thay đổi) dùng để thao tác trên đối tượng chuỗi như đảo ngược chuỗi, nối chuỗi, v.v. Chúng ta có thể sửa đổi chuỗi mà không tạo đối tượng mới. StringBuffer là thread-safe trong khi StringBuilder không thread-safe. Do đó, StringBuilder nhanh hơn StringBuffer. Cũng vậy, toán tử concat + nội bộ sử dụng StringBuffer hoặc StringBuilder. Dưới đây là các khác biệt.

STT Tiêu chí String Buffer String Builder
1 Cơ bản StringBuffer được giới thiệu từ bản phát hành Java ban đầu. Được giới thiệu trong Java 5.
2 Đồng bộ hóa Được synchronized (thread-safe). Không synchronized (non-thread-safe).
3 Hiệu năng Thread-safe nên nhiều thread không truy cập cùng lúc, do đó chậm hơn. Không thread-safe nên nhanh hơn StringBuffer.
4 Mutable Mutable. Có thể sửa chuỗi không tạo object mới. Cũng mutable.
5 Lưu trữ Heap Heap

Ví dụ StringBuilder

public class StringBuilderExample {
    public static void main(String[] args) {
        StringBuilder builder = new StringBuilder("Hi");
        builder.append("Java 8");
        System.out.println("StringBuilderExample " + builder);
    }
}

Ví dụ StringBuffer

public class StringBufferExample {
    public static void main(String[] args) {
        StringBuffer buffer = new StringBuffer("Hi");
        buffer.append("Java 8");
        System.out.println("StringBufferExample " + buffer);
    }
}