Computer >> Máy Tính >  >> Lập trình >> Java

Sự khác biệt giữa bộ đệm chuỗi và trình tạo chuỗi trong Java

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);
   }
}