Bộ đệm chuỗi và StringBuilder đều là các lớp có thể thay đổi được, có thể được sử dụng để thực hiện hoạt động trên các đố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 cần tạo đối tượng mới của chuỗi. Bộ đệm chuỗi an toàn cho chuỗi trong khi trình tạo chuỗi không an toàn cho chuỗi. Do đó, nó nhanh hơn một bộ đệm chuỗi. Ngoài ra, một toán tử concat + sử dụng nội bộ lớp StringBuffer hoặc StringBuilder. Dưới đây là những điểm khác biệt.
Sr. Không. | Phím | Bộ đệm chuỗi | Trình tạo chuỗi |
---|---|---|---|
1 | Cơ bản | StringBuffer được giới thiệu cùng với bản phát hành đầu tiên của Java | Nó đã được giới thiệu trong Java 5 |
2 | Đã đồng bộ hóa | Nó được đồng bộ hóa | Nó không được đồng bộ hóa |
3 | Hiệu suất | Nó an toàn theo luồng. Vì vậy, nhiều luồng không thể truy cập cùng một lúc, do đó, nó rất chậm. | Nó không an toàn cho luồng, do đó nhanh hơn String Buffer |
4 | Có thể thay đổi | Nó có thể thay đổi. Chúng tôi có thể sửa đổi chuỗi mà không cần tạo một đối tượng | Nó cũng có thể thay đổi |
5 | Dung lượng | đống | đống |
Ví dụ về 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ụ về StringBuffer
public class StringBufferExample{ public static void main(String[] args){ StringBuffer buffer=new StringBuffer("Hi"); buffer.append("Java 8"); System.out.println("StringBufferExample" +buffer); } }